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

如果我运行命令 cat file | grep 模式,我得到了很多行输出。您如何将所有行连接成一行,有效地将每个 "\n" 替换为 "\"" (以 " 结尾,后跟空格)?

cat 文件 | grep 模式 | xargs sed s/\n//g 不适合我。

最佳答案

使用 tr '\n' ' ' 将所有换行符转换为空格:

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

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

编辑:

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

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

这会改变:

one
two 
three

到:

one" two" three" 

https://stackoverflow.com/questions/15580144/

相关文章:

python - 如何访问 Django 模板中的字典元素?

python - 如何将 python 日期时间转换为具有可读格式日期的字符串?

linux - 查找 -exec cmd {} + vs | xargs

python - 使用 setup.py 包含非 Python 文件

python - 如何搜索和替换文件中的文本?

linux - 如何让 CRON 调用正确的路径

android - 找不到构建工具修订版 23.0.1

c - Linux 中多线程的信号处理

python - "this"模块的源代码是做什么的?

linux - 如何清空 ("truncate")Linux上已经存在并以某种方式受到保护的文件?