使用awk根据分隔符拆分文件的第一行,并按原样打印其他文件

时间:2018-05-10 13:29:15

标签: awk

我有一个输入文件,如下所示:

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处理线,例如带分隔线的分割线,并按原样打印其他线条。

1 个答案:

答案 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而没有提及任何行动所以默认情况下会打印当前行。

相关问题