은 내가이 패턴과 일치하는이 파일의 라인을 추출하기 위해 필요한이문제는
%name=ABC
%value=123
sample text in file
sample text in file
%name=XYZ
%value=789
sample text in file
같은 내용을 가진 파일 "INPUT_FILE"가 grep을.
str="%name=*\n%value=*"
나는이 방법
gawk -v st=$str '/"$st"/ {print}' $Input_file
내가
grep -e "$str" $Input_file
같이해도 그렙에 오류
gawk: ^backslash not last character on line
납니다을가 그런 없다 말한다 일하고 있었다 일치하는 패턴. 나는 어디가 잘못 됐어.
-'grep'은 그래서 여러 패턴이 일치하지 않습니다, 라인 지향 . 둘째 -'gawk'는 기본적으로 줄 중심입니다. 따라서 여러 줄 패턴을 일치 시키려면 [레코드 구분 기호'RS'] (http://www.gnu.org/software/gawk/)를 설정해야합니다. manual/gawk.html # 기록)을 적절한 것으로 수정하십시오. 세 번째로 - 디버깅을 위해서 Bash 변수를 사용하는 대신 gawk 명령을 직접 작성하는 것이 더 낫다고 생각합니다 (예 :'gawk '/ % name = * \ n % value = */{print}'). 후자의 경우 AWK 또는 Bash쪽에 문제가 있는지 여부를 알기가 어려울 수 있습니다. – ruakh
네 번째 -'= * '는 "0 개 이상의 등호"를 의미합니다. "등호 , 플러스 0 개 이상의 문자 ",'=. *'를 쓰십시오. – ruakh