나는 단지 재미를 위해 awk를 사용하여 대화형 메뉴 스크립트를 만들었습니다. 사용자 입력을 받고 if 문을 사용하여 응답이 다음인지 알 수 있습니다 getline<file
(앞서 변수를 정의했습니다). 나는 이것을 사용했습니다 :
while ((getline<file) > 0) {print};
그러나 쉬움, 중간, 어려움, 미친 옵션을 더 추가하여 더 세분성을 추가하고 싶습니다. 사용자가 파일에서 간단한 다음 getline을 입력하고 파일에서 일치하는 항목만 인쇄하면 다음을 수행하고 싶습니다. 더 세분성을 추가하세요.
예: 일치시키려면 일반 줄을 입력합니다.
awk -F " " '/inet / {print $6}'
따라서 일치하는 항목만 인쇄됩니다 inet
.
awk
루프를 통해 getline
스크립트에 이 원칙을 어떻게 적용할 수 있나요 ?
도움을 주셔서 감사합니다.
기본적으로 다음을 사용하여 전체 파일을 인쇄하지 마십시오.
while ((getline<file) > 0) {print};
나는 다음과 같은 것을 원합니다 :
while ((getline<file) > 0) /Easy: / {print};
단일 라인 예(이와 유사한 출력이 선호됨):
awk -F " " '/Easy: / {print $2}'
그렇지 않으면
awk '/Easy: / {print $0}'
답변1
while ( (getline < file) > 0 ) {
if (/Easy: /) {
print $2
}
}
모든 내용을 읽고 이해했는지 확인하세요.http://awk.freeshell.org/AllAboutGetlinegetline 사용을 고려하고 있다면.