【发布时间】:2013-03-12 21:19:02
【问题描述】:
如果我运行命令cat file | grep pattern,我会得到很多行输出。如何将所有行连接成一行,有效地将每个"\n" 替换为"\" "(以" 结尾,后跟空格)?
cat file | grep pattern | xargs sed s/\n/ /g
不适合我。
【问题讨论】:
-
顺便说一句:(1)你需要把你的
sed脚本放在单引号中,这样Bash就不会弄乱它(因为sed s/\n/ /g用两个参数调用sed,即s/n/和/g); (2) 由于您希望cat file | grep pattern的输出成为sed的输入,而不是sed的参数,因此您需要消除xargs; (3) 这里不需要cat,因为grep可以将文件名作为第二个参数。所以,你应该尝试过grep pattern file | sed 's/\n/ /g'。 (在这种情况下,由于上述链接中给出的原因,它不会起作用,但现在你知道未来了。) -
68 票(140k 浏览)的问题与只有 1 票(12k 浏览)的帖子重复?这是不对的。