0
awkコマンドにファイルの名前を格納するシェル変数を渡したいだけです。私がネット上でこの問題を検索したとき、私は多くの異なるオプションを見ましたが、どれも私のために働いていませんでした。私は以下のことを試してみました:シェルスクリプト内でシェル変数をawkコマンドに渡す方法
#!/bin/bash
for i in "[email protected]"
do
case $i in
-p=*|--producedfile=*)
PFILE="${i#*=}"
shift # past argument=value
*)
# unknown option
;;
esac
done
echo "PRODUCEDFILE = ${PFILE}"
awk -v FILE=${PFILE} '{print FILE $0}' #DIDNT WORK
awk '{print FILE $0}' ${PFILE} # DIDNT WORK
awk -v FILE=${PFILE} '{print $0}' FILE #DIDNT WORK
ない:だから、あなたはまた、最後の行を書くことができますか? – Inian
@Inian $ PFILEはあなたが言ったようにAwkが処理するべきファイルの名前です。 これはmybash.shという名前のbashスクリプトの内部にあるとします。次に、私は次のコマンドを呼び出します:bash mybash.sh -p = inputfile.txt – zwlayer
なぜ 'awk '{print FILE $ 0}' $ {PFILE}'は動作しませんでしたか? 'FILE'変数はここでは定義されていません。私はこれが 'inputfile.txt'の内容を1行で1行ずつ出力したと確信しています – Inian