
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}'