awk로 인쇄

awk로 인쇄

다음 레코드가 포함된 파일 번호.txt가 있습니다.

번호.txt:

123456,2711448,1,14-Feb-15 09:24:25,14-Jul-15 09:24:25,120,20150814163821,13-Aug-15 09:24:25,,,12-Sep-15 09:24:25,,,12-Oct-15 09:24:25,,,11-Nov-15 09:24:25,,,11-Dec-15 09:24:25,,,10-Jan-16 09:24:25,,,,,,,,,,,,12-Sep-15 09:24:25,Y

이제 awk명령에서 다음 조건을 사용하고 조건이 일치하면 모든 열을 인쇄하고 싶습니다.

awk -F"," '{ if($6 == 120) print }' number.txt

조건이 일치하면 마지막 열에 N을 인쇄하고 싶습니다.

원하는 출력은 다음과 같습니다.

산출:

123456,2711448,1,14-Feb-15 09:24:25,14-Jul-15 09:24:25,120,20150814163821,13-Aug-15 09:24:25,,,12-Sep-15 09:24:25,,,12-Oct-15 09:24:25,,,11-Nov-15 09:24:25,,,11-Dec-15 09:24:25,,,10-Jan-16 09:24:25,,,,,,,,,,,,12-Sep-15 09:24:25,N

답변1

인쇄 작업에 원하는 문자열을 추가하면 이 작업을 수행할 수 있습니다. 코드에서는 다음과 같습니다.

awk -F"," '{OFS=FS}{ if($6 == 120){$NF="N"; print $0}}' number.txt

여기에서 {OFS=FS}출력 파일을 정렬하기 위해 awk코드는 조건이 true인지 확인하고, 그렇다면 작업을 수행하고 먼저 마지막 필드를 변경하여 전체 레코드를 인쇄합니다 $NF."N"print $0

관련 정보