나는 이 질문이 여러 번 제기되었고 많은 답변이 잘 작성되어 있다는 것을 알고 있지만 작은 작업에서 뭔가를 놓치고 있습니다. 텍스트 파일의 일부를 가져오려면 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