![문자열 구분 기호를 사용하여 파일에서 특정 열을 선택하는 방법](https://linux55.com/image/160253/%EB%AC%B8%EC%9E%90%EC%97%B4%20%EA%B5%AC%EB%B6%84%20%EA%B8%B0%ED%98%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20%EC%97%B4%EC%9D%84%20%EC%84%A0%ED%83%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
문자열로 구분된 열이 있는 파일이 있습니다. 예를 들어:
one<xx>two<xx>three<xx>four<xx>five<xx>six
one11<xx>two11<xx>three11<xx>four11<xx>five11<xx>six11
특정 열(예: 열 1, 3, 5)의 텍스트를 추출하고 싶습니다. 따라서 출력은 다음과 같아야 합니다.
one<xx>three<xx>five
one11<xx>three11<xx>five11
어떻게 해야 하나요? 다음과 같은 명령을 사용하십시오 awk
.
답변1
입력 필드 구분 기호( FS
) 및 출력 필드 구분 기호( OFS
)를 다음으로 설정합니다 <xx>
.
awk 'BEGIN{FS=OFS="<xx>"} {print $1,$2,$5}' file
산출:
one<xx>two<xx>five
one11<xx>two11<xx>five11
바라보다:8개의 강력한 awk 내장 변수 – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
답변2
$ perl -F'<xxx>' -pale ' $"="<xxx>";$_ = "@F[1,3,5]"' file
필드 구분 기호를 원하는 문자열로 설정한 다음 필드의 인덱스를 수집하고 $"의 문자열과 연결하여 현재 레코드로 저장합니다. -p가 자동으로 인쇄됩니다.