스크립트에서 awk 명령을 해석하려고합니다. 이 명령은 파일의 정상적인 필드 수를 포함하는 변수를 포함하고 있으며이 필드 수와 일치하지 않는 행을 제거하려고합니다.은 bash 스크립트에서 awk 명령을 해석합니다.
filename='myfile.txt'
nbfields=$(head -1 $filename | awk -F '|' '{print NF}')
awkcommand="awk -F '|' 'NF=="$nbfields"{print \$0}'"
$awkcommand > 'myotherfile.txt'
실행, 나는 오류 얻을 :
여기 내 코드입니다
awk: cmd. line:1: 'NF==3{print
awk: cmd. line:1:^invalid char ''' in expression
내가 함께하고 \
$0
전에없이 시도를하지만 동일합니다.
나는 eval을 사용하여 작동하게 만들 수 있지만 가능하면 eval을 사용하지 않는 것이 좋습니다. 내가 이해하는 한, 그것을 사용하는 것은 위험합니다. 그것을 피할 수있는 방법이 있습니까?
덕분에 많이. 나는 -v 옵션에 대해 몰랐다. 산뜻한. 문제 해결됨. – bosonfute