【发布时间】:2019-10-24 14:30:59
【问题描述】:
我有一个 Unix 文件,其中多行和字段以逗号分隔。 我需要在每行中插入一个新字段作为逗号后第三个位置的序列号(1,2,3 ..)
之前的文字
roy,mike,apple,alex
roy,apple,water,joe
lemon,tony,juice,fred
文本之后
roy,mike,apple,1,alex
roy,apple,water,2,joe
lemon,tony,juice,3,fred
【问题讨论】:
-
单行awk:
awk -vOFS=, -F, '{ print $1, $2, $3, ++n, $4 }' -
@dash-o
NR和++n之间没有区别。 -
在 sed 中很神秘:
sed '=' filename | sed 'N;s/\(.*\)\n\(.*,\)/\2\1,/'