如何将多行输出连接到一行?
如果我运行命令cat file | grep pattern  cat file | grep pattern ,我得到很多输出。 如何将所有的行连接成一行,用"\n"有效地replace每个"\n" "\" " (以"后跟空格"\" "结尾)? 
 cat file | grep pattern | xargs sed s/\n/ /g  cat file | grep pattern | xargs sed s/\n/ /g不适合我。 
 使用tr '\n' ' '将所有换行符转换为空格: 
 $ grep pattern file | tr '\n' ' ' 
 注: grep读取文件, cat连接文件。 不要cat file | grep  cat file | grep ! 
编辑:
  tr只能处理单个字符的翻译。 您可以使用awk来更改输出logging分隔符,如: 
 $ grep pattern file | awk '{print}' ORS='" ' 
这将改变:
 one two three 
至:
 one" two" three" 
 输出到xargs输出将把输出的每一行与空格连接成一行: 
 grep pattern file | xargs 
 或者任何命令,例如。 ls | xargs  ls | xargs 。  xargs输出的默认限制是xargs个字符,但可以用例如。  xargs -s 8192 。 
grep xargs
在不带引号的bash echo中删除回车符,制表符和多个空格
 echo $(cat file) 
这可能是你想要的
 cat file | grep pattern | paste -sd' ' 
至于你的编辑,我不确定这是什么意思,也许这个?
 cat file | grep pattern | paste -sd'~' | sed -e 's/~/" "/g' 
  (这个假设~不会出现在file ) 
 这里是使用ex编辑器的方法: 
- 
在所有行和标准输出结果中: $ ex +%j +%p -scq! file
- 
在所有行中(在文件中): $ ex +%j -scwq file注意:这将连接文件内的所有行它自己!