将多行转化为一行
假设 input.txt 文件有 3 行,内容如下:
I came
I saw
I conquered
现在想把这 3 行转化为一行,用逗号","分隔:I came,I saw,I conquered
。
可以用 tr 命令完成下面的功能:
# tr 命令,将 换行符 \n 替换为 ,
tr '\n' ',' < input.txt
# 结果
I came,I saw,I conquered,
不过 tr 命令有个缺点,末尾还多了个逗号","。通常我们不希望末尾还有个逗号,可以用 sed 处理:
# tr 命令,将 换行符 \n 替换为 ,
# sed 命令,将最后的 , 去掉
tr '\n' ',' < input.txt | sed 's/,$/\n/'
# 结果
I came,I saw,I conquered
小结
完整的命令为:tr '\n' ',' < input.txt | sed 's/,$/\n/'
参考:https://www.baeldung.com/linux/join-multiple-lines