一尘不染

如何将多行输出连接到一行?

linux

如果运行命令cat file | grep pattern,则会得到多行输出。您如何将所有行连接为一行,有效地将每行替换"\n""\" ""以空格结尾)?

cat file | grep pattern | xargs sed s/\n/ /g 对我不起作用。


阅读 238

收藏
2020-06-03

共1个答案

一尘不染

使用tr '\n' ' '翻译所有换行符为空格:

$ grep pattern file | tr '\n' ' '

注意:grep读取文件,cat连接文件。不要cat file | grep啦!

编辑:

tr只能处理单字符翻译。您可以使用awk更改输出记录分隔符,例如:

$ grep pattern file | awk '{print}' ORS='" '

这将改变:

one
two 
three

至:

one" two" three"
2020-06-03