![AWK에 매개변수 전달](https://linux55.com/image/184010/AWK%EC%97%90%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%20%EC%A0%84%EB%8B%AC.png)
잘 작동하는 다음 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