awk
를 사용하여 특정 단어 아래의 모든 줄을 Label
변수에 인쇄 하려고 합니다 $var
. 이 예에는 두 개의 값이 있지만 항상 그런 것은 아니지만(매번 다를 수 있음) 단어는 항상 동일하고 동일한 위치에 있습니다. echo
단어가 발견된 줄을 제외하고 두 가지 시도가 모두 실행되었습니다 .
문서
[Header]
Name 1
[ID]
1
1
[ID1]
[Info]
Label xxx
1,,,,xxx
2,,,,yyy
앗 1
var=$(awk -vvar="Label" '($1 == var) {print $0}' file)
echo "$var"
Label xxx
앗 2
var=$(awk '/Label/{for(i=0;i<1;i++){print;getline}}' file)
echo "$var"
Label xxx
원하다
echo "$var"
1
2
답변1
변수 사용 - 내가 호출한 예에서는 p
. 태그를 찾은 후 변수를 설정합니다. 다음 줄부터 시작해서 해당 줄을 인쇄하세요.
var=$(awk 'p==1{print} /Label/{p=1}' file)
또는 변수를 사용하여 "태그" 검색 문자열을 저장합니다.
var=$(awk -vlab="Label" 'p==1{print} $1==lab{p=1}' file)