예 1: 명령 출력에서 열 범위 인쇄
다음 명령은 명령 출력에서 두 번째, 세 번째 및 네 번째 열을 인쇄합니다. '엘 - 엘 '. 여기에서 열 번호가 명시적으로 명시되어 있지만 다음 예에서는 동일한 열 범위를 인쇄하기 위한 보다 효율적인 명령을 보여줍니다.
$엘 -NS | 어이쿠 '{ $2, $3, $4 인쇄 }'
위의 명령에 의해 다음 출력이 생성됩니다.
예 2: 다음을 사용하여 파일의 열 범위 인쇄 ~을위한 고리
이 예제와 이 튜토리얼의 다른 예제를 따라 하려면 다음과 같은 텍스트 파일을 만드십시오. 마크.txt 다음 내용으로 :
아이디 CSE203 CSE102 CSE2021109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
다음 `awk` 명령은 mark.txt의 처음 세 열을 인쇄합니다. NS ~을위한 루프는 열 값을 인쇄하는 데 사용되며 루프에는 세 단계가 포함됩니다. NS NF 변수는 파일의 필드 또는 열의 총 수를 나타냅니다.
$고양이마크.txt$어이쿠 '{for(i=1;i<=NF-1;i++) printf $i' '; print ''}'마크.txt
명령을 실행하면 다음 출력이 생성됩니다. 출력은 학생을 보여줍니다 아이디 에 대한 표시 CSE203 그리고 CSE102 .
예 3: 시작 및 종료 변수를 정의하여 열 범위 인쇄
다음 `awk` 명령은 다음을 초기화하여 명령 출력 'ls -l'의 처음 세 열을 인쇄합니다. 시작 그리고 종결 변수. 여기서 의 값은 시작 변수는 1이고 값은 종결 변수는 3입니다. 이러한 변수는 for 루프에서 반복되어 열 값을 인쇄합니다.
$엘 -NS | 어이쿠 ' 시작 { 처음 = 1; 마지막 = 3 }{ for (i = 첫 번째; 나는
명령을 실행하면 다음 출력이 나타납니다. 출력은 'ls -l' 출력의 처음 세 열 값을 보여줍니다.
예 4: 서식이 있는 파일의 열 범위 인쇄
다음 `awk` 명령은 다음의 처음 세 열을 인쇄합니다. 마크.txt 사용 인쇄 및 출력 필드 구분 기호( OFS ). 여기에서 for 루프는 3단계를 포함하며 3개의 열이 파일에서 순서대로 인쇄됩니다. OFS 여기에서 열 사이에 공백을 추가하는 데 사용됩니다. 루프(i)의 카운터 값이 같을 때 종결 변수를 입력하면 개행( )이 생성됩니다.
$고양이마크.txt$어이쿠 -V 시작=1 -V 끝=삼 '{ for (i=시작; 나는<=end;i++) printf('%s%s',
$i,(i==종료) ? ' ' : OFS) }'마크.txt
위의 명령을 실행하면 다음 출력이 생성됩니다.
예 5: 조건문을 사용하여 파일의 열 범위 인쇄
다음 `awk` 명령은 for 루프와 if 문을 사용하여 파일의 첫 번째 열과 마지막 열을 인쇄합니다. 여기서 for 루프에는 4단계가 포함됩니다. NS 시작 그리고 종결 변수는 스크립트에서 if 조건을 사용하여 파일에서 두 번째 및 세 번째 열을 생략하는 데 사용됩니다. OFS 변수는 열 사이에 공백을 추가하는 데 사용되며 ORS 변수는 마지막 열을 인쇄한 후 개행( )을 추가하는 데 사용됩니다.
$고양이마크.txt$어이쿠 -V 시작=2 -V 끝=삼 '{ (i=1; 나는<=NF;i++)
if( i>=시작 && i<=end) continue;
else printf('%s%s', $i,(i!=NF) ? OFS : ORS) }'마크.txt
위의 명령을 실행하면 다음 출력이 나타납니다. 출력은marks.txt의 첫 번째 열과 마지막 열을 보여줍니다.
예 6: NF 변수를 사용하여 파일의 열 범위 인쇄
다음 `awk` 명령은 NF 변수를 사용하여 파일의 첫 번째 열과 마지막 열을 인쇄합니다. 열 값을 인쇄하는 데 루프나 조건문이 사용되지 않습니다. NF는 필드 수를 나타냅니다. mark.txt에는 4개의 열이 있습니다. $(NF-3)은 첫 번째 열을 정의하고 $NF는 마지막 열을 나타냅니다.
$고양이마크.txt$어이쿠 '{$(NF-3) 인쇄' '$NF}'마크.txt
위의 명령을 실행하면 다음 출력이 생성됩니다. 출력은marks.txt의 첫 번째 열과 마지막 열을 보여줍니다.
예 7: substr() 및 index()를 사용하여 파일의 열 범위 인쇄
index() 함수는 두 번째 인수 값이 첫 번째 인수 값에 있는 경우 위치를 반환합니다. substr() 함수는 세 개의 인수를 사용할 수 있습니다. 첫 번째 인수는 문자열 값이고 두 번째 인수는 시작 위치이며 세 번째 인수는 길이입니다. substr()의 세 번째 인수는 다음 명령에서 생략됩니다. 열은 `awk` 명령에서 $1부터 시작하므로 index() 함수는 $3을 반환하고 명령은 $3에서 $4까지 인쇄합니다.
$고양이마크.txt$어이쿠 '{인쇄 substr($0,index($0,$3))}'마크.txt
위의 명령을 실행하면 다음 출력이 생성됩니다.
예 8: printf를 사용하여 파일에서 열 범위를 순차적으로 인쇄
다음 `awk` 명령은 10자를 위한 충분한 공간을 설정하여 mark.txt의 첫 번째, 두 번째, 세 번째 열을 인쇄합니다.
$고양이마크.txt$어이쿠 '//{printf '%10s %10s %10s ',$1,$3,$2}'마크.txt
위의 명령을 실행하면 다음 출력이 생성됩니다.
결론
명령 출력 또는 파일에서 열 범위를 인쇄하는 다양한 방법이 있습니다. 이 튜토리얼에서는 `awk` 명령이 Linux 사용자가 표 형식 데이터에서 콘텐츠를 인쇄하는 데 어떻게 도움이 되는지 보여줍니다.