Bash 스크립트에서 매개변수를 읽고 이를 awk 명령에 전달 [닫기]

Bash 스크립트에서 매개변수를 읽고 이를 awk 명령에 전달 [닫기]

나는Bash 스크립트의 명령입니다. 파일 경로를 bash 스크립트에 매개변수로 전달하고 있는데 매개변수가 다음 위치에 있습니다.주문하다.

내 배쉬 파일mybash.sh암호:

#!/bin/bash

file="$1"

echo $file

awk 'BEGIN{FS=OFS=","} NF!=5{print "not enough fields"; exit} NR == 1 && ($1 != "nasme" || $2 != "designation" || $3 != "email" || $4 != "phone" || $5 != "group") {print "Wrong file headers"; exit}' $file

bash 파일을 실행하면:

배쉬 mybash.sh /home/file_path.csv

내 스크립트가 인쇄됩니다.$파일내가 길을 제시했지만 내명령이 이 내용을 읽지 못했습니다.$파일, 인쇄되기 때문에핵인자항상 0입니다. 그러나 위의 awk 명령은 터미널에서 직접 잘 작동합니다.

awk 'BEGIN{FS=OFS=","} NF!=5{print "not enough fields"; exit} NR == 1 && ($1 != "name" || $2 != "designation" || $3 != "email" || $4 != "phone" || $5 != "grsoup") {print "Wrong file headers"; exit}' /home/file_path.csv

답변1

나는 다음을 수행할 것입니다:

file="$1"

cat $file | awk 'BEGIN{FS=OFS=","} NF!=5{print "not enough fields"; exit} NR == 1 && ($1 != "nasme" || $2 != "designation" || $3 != "email" || $4 != "phone" || $5 != "group") {print "Wrong file headers"; exit}' > someoutputfile

관련 정보