linux - 寻找更好的方法在linux中编写命令管道tr

标签 linux ubuntu command-line

我只是想知道是否有比我更有效地执行此命令的方法。如果有请告诉我!

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/

相关文章:

c++ - 使用Visual C++ for Linux Development时是否可以直接使用linux文件夹/usr/include

linux - Ubuntu 64 位还是 32 位?

shell - 如何让 grep 保持文件/管道打开?

windows - 使用命令行禁用以太网连接?

linux - Spark配置,SPARK_DRIVER_MEMORY、SPARK_EXECUTOR_MEMORY、SPARK_WORKER_MEMORY有什么区别?

linux - 为什么这个错误?在 join 或 string 中使用未初始化的值

node.js - docker 容器中的 NPM 安装失败并返回 "The command '/bin/sh -c npm install' 返回非零代码 : 1"

linux - ACE 和异步 UDP 通信

Java 无效的最大堆大小

从命令行运行 R 脚本