bash에서 awk로 공백이 포함된 변수를 전달하려고 합니다. 단일 문자열 변수(파일의 첫 번째 열에서 변수를 검색하는 경우)를 사용하여 이 작업을 수행하는 간단한 스크립트가 있습니다. 예를 들면 다음과 같습니다.
var=string
awk -v v=$var '(index($1, v) !=0) {print}' FILE
그렇다면 이것은 작동하지 않습니다 var="string1 string2"
. 두 번째 변수에 표시된 것처럼 변수가 공백으로 구분된 단어 그룹인 새로운 검색이 있습니다. 예를 들어,
var="string1 string2 string_n"
awk -v v=$var '(index($1, v) !=0) {print}' FILE
답변1
$var
또한 명령에 이중 아포스트로피를 입력 해야 합니다 awk
.
varName="a string with spaces"
awk -v var="$var" '{...your awk code...}'
이는 awk 명령이 쉘에 의해 호출되고 대부분의 쉘(bash 포함)은 변수 대체 후 태그를 잊어버리기 때문입니다.