我有一个输入文件,如下所示:
name<next>Rocky
id: 1321
age: 36
exp: 10
occupation: doctor
要求使用awk的方式使得awk处理后的输出为:
Rocky
id: 1321
age: 36
exp: 10
occupation: doctor
可以看出,除第一个文件外,文件的其他行中不存在分隔符“”。
截至目前在下面运行时只打印Rocky后跟空行,因为其他行中没有这样的分隔符:
awk -F "<next>" '{print $2}' file
我知道awk逐行处理,但有没有办法限制awk处理或仅在1行执行分隔操作。在这种情况下,我们在第一行进行。一般来说,也可以制作符合条件的awk处理线,例如带分隔线的分割线,并按原样打印其他线条。
答案 0 :(得分:1)
关注awk
可能对您有帮助。
awk 'FNR==1{sub(/.*next>/,"")} 1' Input_file
说明:
FNR==1
:如果行号为1
,请在此处检查条件。如果是,则执行以下操作。
{sub(/.*next>/,"")}
:使用sub
的{{1}}实用程序,并在此处替换从开始到awk
的所有内容。
next>
:1
适用于awk
然后condition
的方法,所以在这里提到action
我的条件为TRUE而没有提及任何行动所以默认情况下会打印当前行。