awk에서 필드 구분 기호를 사용하고 파이프가 없는 줄을 무시하는 방법은 무엇입니까?

awk에서 필드 구분 기호를 사용하고 파이프가 없는 줄을 무시하는 방법은 무엇입니까?

다른 명령으로 연결하지 않고 이 줄에서 cut 명령을 제거할 수 있습니까?

awk 'NR > 1 {print l}{l=$2}' filename | cut -d':' -f2


원하거나 필요한 경우 세부정보:

[필수라기보다는 관심의 문제입니다. cut위의 내용을 사용하면 작업을 쉽게 완료할 수 있습니다.]

파일의 마지막 줄을 무시하면서 두 번째 열을 가져올 수 있습니다 NR > 1{print l}{l=$2}.

기본적으로 이는 플랫 파일 데이터베이스(비데이터 콘텐츠의 마지막 줄 참고)이며 각 값이 필요합니다 field1.

$ cat file
1    field1:value1    field2:value2    ...
                   .
                   .
                   .
N    field1:value1    field2:value2    ...
other.parseable info.that is.unnecessary to.me

-F"잘라내기"를 먼저 수행하기 때문에 열 번호를 변경하는 것처럼 보이기 때문에 해당 플래그를 사용해 도 작동하지 않습니다.

$ awk -F ':' 'NR > 1 {print l}{l=$2}' file
value1   field2
value1   field2
...

답변1

귀하가 사용할 수 있는 split기능 입니다 awk.

awk '{ split($2, var, /:/ ); print var[2] }'

또는 여러 구분 기호를 사용하세요.

awk -F'[ :]+' '{print $3}'

관련 정보