AWK에 매개변수 전달

AWK에 매개변수 전달

잘 작동하는 다음 AWK 명령이 있습니다.

awk -v RS="\n+?[$]{4}\n+?" '/HMDB0000008/' test.xt

그러나 내가 원하는 것은 명령줄에서 호출하고 인수를 전달하여 내가 원하는 것을 찾을 수 있도록 하는 것입니다.

예를 들어 다음과 같습니다.

awk -f var=HMDB0000008 RS="\n+?[$]{4}\n+?" '/$var/' test.txt

그러나 이것은 작동하지 않는 것 같습니다. 가장 좋은 방법이 무엇인지 말해 줄 수 있습니까?

감사해요

답변1

awk는 변수를 확장하는 데 사용되지 않으며 $더욱이 -f 대신 -v 옵션과 함께 전달됩니다. 또한 내부 문자열은 /.../정규식 패턴으로 처리되므로 ~전체 줄( )에서 $0패턴 일치 연산자를 사용해야 합니다.

awk -v var=HMDB0000008 -v RS="\n+?[$]{4}\n+?" '$0 ~ var' test.txt

관련 정보