【发布时间】:2021-04-22 06:30:30
【问题描述】:
我有一个结构文件
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}'的输出
也许我可以先做点什么?
【问题讨论】:
-
无法得到它:
desc: blah...不匹配9912,但它会移动到它。你能澄清你的问题吗? -
我想将匹配模式 "desc:" 的行移到上一行或删除每个模式 "desc:" 之前的行中的 '\n'。
-
使用 getline 通常是错误的方法,在这种情况下肯定是这样。在您阅读 awk.info/?tip/getline 并完全理解所有注意事项之前,不要考虑使用 getline。