AWK - 특정 라인을 처리하지 않고 인쇄합니다.

AWK - 특정 라인을 처리하지 않고 인쇄합니다.

다음 형식의 파일이 있는 경우:

line1 column1
line2 columnA
line3 column1A
exclude this
line5 column2
line6 columnB
line7 column2B

column*이전에 인쇄 되도록 열을 교환하고 싶습니다 line*. awk다음과 같은 간단한 명령을 사용 awk '{print $2 " " $1}'하고 다음과 같은 출력을 얻습니다.

column1 line1
columnA line2
column1A line3
this exclude
column2 line1
columnB line2
column2B line3

이제 해당 줄을 인쇄하되 순서를 바꾸지는 않기를 원합니다 exclude(3번 줄일 필요는 없습니다). 이 명령을 사용하면 해당 행을 무시할 수 awk '/exclude/{next}{print $2 " " $1}'있으며 제외된 행 없이 출력됩니다.

column1 line1
columnA line2
column1A line3
column2 line1
columnB line2
column2B line3

열을 awk포함하지만 재정렬하지 않고 행을 인쇄하는 방법을 어떻게 알 수 있나요 ? exclude그래서 다음과 같이 출력됩니다.

column1 line1
columnA line2
column1A line3
exclude this
column2 line1
columnB line2
column2B line3

답변1

그것은 마치

awk '{if(/exclude/){print}else{print $2,$1}}' file.txt

또는 결과는 동일하지만 더 짧습니다.

awk '!/exclude/{$0=$2FS$1}1' file.txt

관련 정보