wae*_*ael 1 unix shell awk sed
我有一个Unix文件,其中多个行和字段用逗号分隔。我需要在每行的逗号后的第3个位置插入一个新字段作为序列号(1,2,3 ..)
之前的文字
roy,mike,apple,alex
roy,apple,water,joe
lemon,tony,juice,fred
Run Code Online (Sandbox Code Playgroud)
文字后
roy,mike,apple,1,alex
roy,apple,water,2,joe
lemon,tony,juice,3,fred
Run Code Online (Sandbox Code Playgroud)
Though link shared by oguz ismail but seems link's solutions are a bit complex compare to this problem, so adding a simple one here.
awk 'BEGIN{FS=OFS=","} {$NF=++count OFS $NF} 1' Input_file
Run Code Online (Sandbox Code Playgroud)
OR as per anubhava sir's comment you could try following too.
awk 'BEGIN{FS=OFS=","} {$NF = FNR OFS $NF} 1' Input_file
Run Code Online (Sandbox Code Playgroud)
这些解决方案假定必须将序列号插入最后一个字段($NF
)之前,如所示。
FNR
是单个输入文件中的记录号。如果在命令行上指定多个文件,则每个新文件的编号将跳回到1。如果您希望序列号继续计算所有输入文件,请使用NR
代替FNR
。
归档时间: |
|
查看次数: |
93 次 |
最近记录: |