awk에 쉘 변수 전달

awk에 쉘 변수 전달

나는 이 질문이 여러 번 제기되었고 많은 답변이 잘 작성되어 있다는 것을 알고 있지만 작은 작업에서 뭔가를 놓치고 있습니다. 텍스트 파일의 일부를 가져오려면 awk에 쉘 변수(이 경우 매개변수)를 전달해 보십시오.

cat ~/work/junk.txt 

[Section1]
innerline1
innerline2
innerline3

[Section2]
innerline4
innerline5
innerline6

awk에서 일치하는 패턴으로 전달된 제공된 인수($1)를 사용하는 스크립트를 작성하려고 합니다.

#!/bin/bash

echo pattern is $1

# record separator (RS) is the next blank line
awk -v var="$1" {print '/var/'} RS= ~/work/junk.txt

$1이 "Section1"로 제공된 매개변수인 경우 다음과 같은 출력이 예상됩니다.

[Section1]
innerline1
innerline2
innerline3

가깝다고 생각하지만 아직은 멀다.

어떤 아이디어라도 감사드립니다.

답변1

#!/bin/bash

echo "Pattern is ${1}"

awk -F'=' -v section="[$1]" -v f=0 '$0==section {f=1}  $0=="" {f=0} f==1 {print}' input

관련 정보