Mat*_*ell 10 linux bash regex sed command-line
我正在处理一个命令,该命令将 sed 中的所有数字 0-9 替换为其相应的字母。我知道我做错了什么,但 sed 并没有将替换正则表达式解释为字符串文字以外的任何东西。
我正在使用的命令是 sed -r 's/[0-9]/[A-J]/g' log > ~/output.txt
这对我来说似乎很简单,但我已经坚持了大约一个小时。我收到的输出只是用字符串“[AJ]”替换了 0-9
cho*_*oba 37
在替换中,只有匹配项(左侧)是正则表达式。该更换或多或少只是一个字符串(有一些反斜杠扩展) -这是不是一个正则表达式。
你想要音译,而不是替换,所以替换s为y:
echo 34031445 | sed 'y/0123456789/ABCDEFGHIJ/'
Run Code Online (Sandbox Code Playgroud)
sed 不能在 中使用范围y,但 Perl 可以:
echo 34031445 | perl -pe 'y/0-9/A-J/'
Run Code Online (Sandbox Code Playgroud)
或者只是使用tr:
echo 34031445 | tr 0-9 A-J
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |