다음 레코드가 포함된 파일 번호.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