Linux 文件操作



我一直在尝试使用tr操作文件,并有一个任务是删除一个文件中的所有标点符号并将内容移动到另一个文件中。

cat file1 | tr --delete [:punct:] | cp file1 file2

使用此命令时,我返回的文件预览没有标点符号,但是当我查看file2时,所有标点符号仍然存在。

我做错了什么吗?

您不会更改file1,因此最后一个cp只是复制旧文件。cp也不会从stdin获取输入,因此您不会保存翻译后的输出。

您可以通过使用>重定向将tr输出直接管道传输到file2来解决此问题。

tr --delete '[:punct:]' < file1 > file2

请注意,我还删除了对 cat 的无用使用。

看起来您需要重定向而不是管道。最后一个命令不是读取 stdio,只是将原始 file1 复制到 file2。尝试:

cat file1 | tr --delete [:punct:] > file2

相关内容

  • 没有找到相关文章

最新更新