다음 줄의 두 번째 필드(예: "스크립트")의 첫 번째 문자의 왼쪽 위치(예: 7)를 가져오고 싶다고 가정해 보겠습니다.
Shell scripting is amazing.
가급적 awk를 사용하여 어떤 방법을 제안해 주세요.
답변1
POSIX awk를 사용하고 기본 FS를 사용한다고 가정합니다.
$ awk -v n=2 '{match($0,"[[:space:]]*([^[:space:]]+[[:space:]]+){"n-1"}"); print RLENGTH+1}' file
7
이전은 [[:space:]]*
awk가 기본값이 지정된 첫 번째 필드 전에 선행 공백을 건너뛴다는 점을 고려하는 것입니다 FS
. 무조건 인쇄는 RLENGTH+1
행에 필드가 많지 않은 경우에도 항상 숫자를 인쇄하도록 보장하는 것입니다. 처음에 찾기를 요청합니다(이 경우 인쇄됨 0
).