중복 가능성:
awk의 외부 변수
아래에서 이 변수를 전달하는 방법은 무엇입니까?
이것은 작동하지 않습니다:
fname=testfile.txt
lsof | awk '/deleted/&&/$fname/ {print $4}' *----no output*
이것이 작동하는 동안:
lsof | awk '/deleted/&&/testfile.txt/ {print $4}'
3r
답변1
이는 쉘 변수가 작은따옴표로 확장되지 않기 때문에 발생합니다. 패턴을 다음과 같이 전달하려면 awk
with를 사용하세요 .-v
awk
fname=testfile.txt
lsof | awk -v pattern="$fname" '/deleted/ && $0 ~ pattern { print $4 }'