我有来自 db dump 的那些行
INSERT INTO db1 VALUES ('2', '33', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '23544', '1', '1987', '3', '1', '1');
INSERT INTO db1 VALUES ('2', '343', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '21', '1', '1987', '3', '1', '1');
正如您所看到的,第二个字段是 33, 23544,343,使用“ ”。
我想用awk
数字递增的字段(1,2,3..)替换 ,我知道如何使用$2++
,但我不知道如何将 传递'
为字段分隔符。
使用此语法给我错误:
awk 'BEGIN { FS = "' '" } ; { print $2 }'
答案1
关于什么
awk -F\' '{print $2}'
只是逃避'
取回输出字段分隔符需要更多的引用,但可以通过在 内设置 OFS 来完成awk
。将其与您的问题放在一起看起来会像这样(非常感谢@Peter.O 的清理):
awk -F\' -vOFS=\' '{$2++;print}'