awk는 한 열을 다른 열로 변경합니다.

awk는 한 열을 다른 열로 변경합니다.

열 2 os를 이와 같은 데이터베이스 파일로 바꾸고 싶습니다

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

나는 열심히 노력했다

awk -F\' '{print NR-1,$2}'

열 2 대신 NR-1을 사용할 수 있나요?

나는 이와 같은 결과를 원합니다(두 번째 숫자 필드 참조).

INSERT INTO db1 VALUES ('2', '1', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '2', '1', '1987', '3', '1', '1');
INSERT INTO db1 VALUES ('2', '3', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '4', '1', '1987', '3', '1', '1');

답변1

노력하다:

$ awk -F\' -vOFS=\' '{$4=FNR}1' file
INSERT INTO db1 VALUES ('2', '1', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '2', '1', '1987', '3', '1', '1');
INSERT INTO db1 VALUES ('2', '3', '3', '1975', '3', '5', '1');
INSERT INTO db1 VALUES ('4', '4', '1', '1987', '3', '1', '1');

관련 정보