awk 파일의 Shebang

awk 파일의 Shebang

awk 파일을 호출하려는 bash 스크립트가 있습니다.

fire.awkawk 파일을 어떻게 호출할까요 fire.awk? 본 적이 있지만 #!/bin/awk -f이것이 규칙인지 확실하지 않습니다.

#!/bin/awk -f사람들은 왜 awk 파일에 포함합니까 ?

답변1

쉘 스크립트에서 awk 스크립트를 호출하려면 두세 가지 솔루션이 있습니다.

  1. 쉘 스크립트 내의 awk 스크립트

문서 foo.sh:

#! /usr/bin/env bash

awk '{print}' < input.txt > output.txt

awk 스크립트가 매우 짧은 경우 유용합니다.

큰 awk 스크립트가 있으면 줄 바꿈이 있어도 좋지 않습니다. IDE가 awk 구문을 인식할 수 없습니다.'...'

  1. 쉘 스크립트가 아닌 awk 스크립트

긴 awk 스크립트를 위한 더 나은 솔루션입니다.

  • 실행 불가능한 awk 스크립트 사용 foo.awk쉘에서 awk 스크립트를 호출하려면 다음 명령을 사용해야 합니다 awk. 문서 foo.sh:
#! /usr/bin/env bash

/bin/awk -f foo.awk < input.txt > output.txt

환경변수에 명령어가 있으면 생략할 수 있지만 /bin/실제로는 안전하지 않습니다.awkPATH

문서 foo.awk:

{print}

정말 짧습니다. IDE는 파일 확장자의 구문만 인식합니다.

  • 실행 가능한 awk 스크립트 사용

파일에 실행 가능 플래그를 추가 chmod +x foo.awk하려면 이 명령을 사용하십시오 . 쉘에서 awk 스크립트를 호출하기 위해 이 명령을 foo.awk사용할 필요는 없습니다 .foo.awkawk

문서 foo.sh:

#! /usr/bin/env bash

foo.awk < input.txt > output.txt

foo.awk다음과 같이 환경 변수에 PATH디렉터리를 포함하거나 접두사를 붙여야 합니다 ./my/program/directory/foo.awk ...

좋은 인터프리터를 실행하려면 awk 스크립트의 첫 번째 줄에 shebang 줄을 추가해야 합니다 foo.awk.

#! /bin/awk -f

{print}

일부 IDE는 이 파일을 확장명이 있는 awk 파일로 인식합니다. 의심스러운 경우 첫 번째 줄을 읽어 더 나은 선택을 하십시오.

관련 정보