我只是想知道是否有比我更有效地执行此命令的方法。如果有请告诉我!
cat logfile | tr '[' '(' | tr '{' '(' | tr ']' ')' | tr '}' ')'
最佳答案
tr
通过替换字符(或正则表达式)来工作,但每次调用仅处理一个操作
sed
可能更适合实现您想要的目标。它可以处理每次调用的多个操作
尝试
sed -e 's/\[/(/g' -e 's/{/(/g' -e 's/\]/)/g' -e 's/}/)/g' catfile
您甚至可以使用 -i
切换到 sed 来编辑输入文件
sed -i -e 's/\[/(/g' -e 's/{/(/g' -e 's/\]/)/g' -e 's/}/)/g' catfile
注意:
[
表示正则表达式的开头,因此必须用反斜杠转义,以便 sed 搜索并替换字符串文字 [
关于linux - 寻找更好的方法在linux中编写命令管道tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274304/