我有一个结构文件
12312
desc: bleh...
9938
desc: blah...
desc: bloh...
desc: blih...
desc: bluh...
9912
desc: blah...
我想将与模式“desc:”匹配的行移动到上一行或删除每个模式“desc:”之前的行中的“\n”。
期望的输出:
12312 desc: bleh...
9938 desc: blah... desc: bloh... desc: blih... desc: bluh...
9912 desc: blah...
我试过了
awk '!/desc:/{
printf "%s ",$0
getline
printf "%s \n",$0
}
/desc/{print}' file
没有结果。
实际上所有的数据都是awk -F\"'{print $4 "\t"$6}'
的输出
也许我可以先做点什么?
最佳答案
sed
单行
sed ':a $!N;s/\ndesc/ desc/;ta P;D'
会输出
12312 desc: bleh...
9938 desc: blah... desc: bloh... desc: blih... desc: bluh...
9912 desc: blah...
关于bash - 将与模式匹配的行移动到上一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17021770/