次のシェルコード行があります。
ls -1 *.mp3| awk -v here="$(cygpath -w $PWD)" -v source="$source" '{print "File Name: "$0"\n"here"\n"source}'
残念ながら、次のように出力されます。
File Name: Data 00053.mp3
C:UsersathenaWorkProject_10.MBT
Source: Converted from RAW
この行C:UsersathenaWorkProject_10.MBT
はC:\Users\athena\Work\Project_10\00.MBT
私は今迷子になり、ここで学ぶことがたくさんあります。
答え1
awk
渡された値をどのように処理するかについての質問です-v
。渡された文字列のバックスラッシュを解釈します。
代わりに環境変数を渡してください。
here="$(cygpath -w "$PWD")" awk ... '{ print ... ENVIRON["here"] ... }'
ENVIRON
awk
現在の環境で名前で入力された変数値を含む連想配列。
あなたのコードにも関連しています。