AWK : ' ' 作为字段分隔符

AWK : ' ' 作为字段分隔符

我有来自 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}'

相关内容