다음과 같은 입력 텍스트 파일이 있습니다 text.txt
.
Header
Column1|Column2|Column3
C11|C12|C13
C21|C22|C23
C31|C32|C33
Footer
내 출력은 다음과 같아야합니다
Column1|Column3
C11|C13
C21|C23
C31|C33
현재 제가 사용하고 있는 명령어는
awk -F "|" 'BEGIN{NR > 1; OFS = "|"}{print $1, $3}' text.txt > text2.txt
NR > 1
Header가 첫 번째 줄이므로 무시 하면 어떨까요 ?
또한 마지막 줄을 어떻게 무시할 수 있습니까?
답변1
awk -F '|' -vOFS='|' '/^Header|^Footer/ {next} ; {print $1, $3}' text.txt
일치하는 행을 건너뛰 ^Header
거나 ^Footer
다른 모든 행의 열 1과 3을 인쇄합니다.
필드 구분 기호(FS)와 출력 필드 구분 기호(OFS)가 모두 로 설정됩니다 |
.
답변2
어쩌면 다음과 같은 것을 사용할 수도 있습니다( a.txt
입력 포함).
head --lines=-1 a.txt | tail --lines=+2 | awk -F "|" '{print $1"|"$2}'
head --lines=-1
마지막 행을 제외한 모든 것을 인쇄합니다.
tail --lines=+2
모든 것을 인쇄하지만 두 번째 행에서 시작하여
awk -F "|" '{print $1"|"$3}'
첫 번째 및 세 번째 열을 가져옵니다.
결과 :
Column1|Column3
C11|C13
C21|C23
C31|C33