linux - 是否可以将两个 tr 命令合二为一?

标签 linux shell ubuntu tr

我有以下两个命令:

tr '[:upper:]' '[:lower:]' < file1.txt > file2.txt
tr -s "[:punct:]" " " < file1.txt > file2.txt

是否可以将它们组合成一个命令?我的以下尝试没有奏效:

tr '[:upper:]' '[:lower:]' | tr -s "[:punct:]" " " < file1.txt > file2.txt

最佳答案

您需要将输入重定向放在第一个 tr 之前,而不是第二个。

tr '[:upper:]' '[:lower:]' < file1.txt | tr -s "[:punct:]" " " > file2.txt

否则,第一个 tr 尝试从终端而不是文件读取,第二个 tr 从文件而不是管道读取。

关于linux - 是否可以将两个 tr 命令合二为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53201426/

相关文章:

linux - 在linux中获取短运行程序的峰值内存(堆和堆栈)

c++ - 有没有办法在 C++ 中检测或更改 EOL 格式从 Windows 到 Linux?

linux - 通过命令 shell 脚本使用 tshark 进行转换

c - 将 shell "*"实现到 C 程序中

java - 使用 shell 脚本比较两个 java 属性文件

c# - 写入 FIFO 文件、Linux 和 Mono(C#)

shell - 制作 shell 'source' 文件使用相对路径

Ubuntu 16.04 虚拟盒蓝牙

Python - socketio 导入错误

带有本地化的 Postgresql 数据库创建问题