AWK:「」をフィールド区切り文字として使用

AWK:「」をフィールド区切り文字として使用

dbダンプには対応する行があります。

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');

ご覧のとおり、2 番目のフィールドは "" を使用する 33, 23544,343 です。

フィールドを数値的に増加するフィールド(1,2,3..)に置き換えたいと思いますawk。使用方法を知っていますが、フィールド区切り文字として$2++渡す方法がわかりません。'

この構文を使用するとエラーが発生します。

awk 'BEGIN { FS = "' '" } ; { print $2 }'

ベストアンサー1

何について

awk -F\' '{print $2}'

ただ逃げる'

出力フィールド区切り文字を取得するにはより多くの引用が必要ですが、内部的にOFSを設定することで実行できますawk。あなたの質問でまとめると、次のようになります(整理のために@Peter.Oに感謝します)。

awk -F\' -vOFS=\' '{$2++;print}'

おすすめ記事