범위별로 특정 전체 열만 인쇄

범위별로 특정 전체 열만 인쇄

이런 내용의 파일이 있습니다.

Column1     Column2                           Column3             Column4
USER1        25 Years                          xyz zyz               123 abc
USER2        15 Years 2 months blah            abc sdsz sd        123 abc

등...

이제 내가 원하는 것은 COLUMN2의 모든 콘텐츠를 인쇄하는 것입니다. 보시다시피 동적 콘텐츠가 있고 텍스트는 한 단어 또는 공백이 있는 여러 단어일 수 있습니다. 따라서 2열의 내용을 인쇄할 방법이 필요합니다.

답변1

사용 awk:

awk 'NR==1{b=index($0,$2); e=index($0,$3)} {print substr($0,b,e-b)}' file

필드 길이가 동적 이라면 age먼저 길이가 시작하고 끝나는 위치를 찾아야 합니다. 변수 b정의 필드가 시작되는 문자와 e변수 정의가 끝나는 문자입니다. substr()그런 다음 로프를 원하는 길이로 자릅니다.

관련 정보