我一直在尝试使用tr操作文件,并且有一个任务是删除一个文件中的所有标点符号,并将内容移动到另一个文件中。
cat file1 | tr --delete [:punct:] | cp file1 file2当使用此命令时,我返回的是没有标点符号的文件预览,但当我查看file2时,所有标点符号仍然存在。
我是不是做错了什么?
发布于 2018-08-12 23:30:29
您没有更改file1,所以最后一个cp只是复制旧文件。cp也不接受来自stdin的输入,所以您不会保存转换后的输出。
您可以通过使用>重定向将tr输出直接传输到file2来解决此问题。
tr --delete '[:punct:]' < file1 > file2请注意,我还删除了useless use of cat。
发布于 2018-08-12 23:32:01
看起来你需要重定向而不是管道。最后一条命令并没有读取stdio,只是将原始的file1复制到file2。尝试:
cat file1 | tr --delete [:punct:] > file2https://stackoverflow.com/questions/51810222
复制相似问题