首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux文件操作

Linux文件操作
EN

Stack Overflow用户
提问于 2018-08-12 23:26:31
回答 2查看 77关注 0票数 1

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

代码语言:javascript
复制
cat file1 | tr --delete [:punct:] | cp file1 file2

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

我是不是做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2018-08-12 23:30:29

您没有更改file1,所以最后一个cp只是复制旧文件。cp也不接受来自stdin的输入,所以您不会保存转换后的输出。

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

代码语言:javascript
复制
tr --delete '[:punct:]' < file1 > file2

请注意,我还删除了useless use of cat

票数 4
EN

Stack Overflow用户

发布于 2018-08-12 23:32:01

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

代码语言:javascript
复制
cat file1 | tr --delete [:punct:] > file2
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51810222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档