现在有一个需求,就是将各个行的文本用|分割,然后放到一行

1.txt的内容如下:

zhangsan

lisi

wangwu

需要合并为:

zhangsan|lisi|wangwu


按照之前的思路,就是不断的sed 'N;s/\n/|/' 1.txt

N的意思就是,将下一行合并到当前行,并且将两行用\n隔开。

但这样太麻烦了,后来从网上搜了一下,

从网上搜到一行代码:

sed ':a;N;s/\n/|/;ta' 1.txt


:a 和ta 是一对符号,:a是先做一个标记,然后如果ta之前执行成功,则跳转到:a标识符继续执行,达到了循环的效果。


这样就方便多了。