今天在看技术论坛的时候发现一个技术贴看的有点晕,所以自己研究了会,分享一下心得。
首先是原文件
[root@localhost 1]# cat aa a liu shanghai jiaotong shanghai,zhongguo b liu beijing daxue beijing,zhongguo c hou dalian chengshi dalian,zhongguo [root@localhost 1]#
空白行代码打不出来,所以来个截图
目的:3行合并成一行,并去掉空行
结果
a liu@shanghai jiaotong@shanghai,zhongguo b liu@beijing daxue@beijing,zhongguo c hou@dalian chengshi@dalian,zhongguo
sed:
sed '/^$/d' aa | sed 'N;N;s/\n/\@/g'
awk:
cat aa | awk -v RS="" '{gsub("\n","@");print}'
解释一下:
sed处理
/^$/d是删除空行
N;N;s/\n/\@/g
这个是每3行合并成一行的意思,然后把换行替换成@符号
awk处理
RS=“”以空白行为分隔符
gsub("\n","@")
换行替换成@符号