N번째 필드의 첫 번째 문자 위치를 가져옵니다.

N번째 필드의 첫 번째 문자 위치를 가져옵니다.

다음 줄의 두 번째 필드(예: "스크립트")의 첫 번째 문자의 왼쪽 위치(예: 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).

관련 정보