awkが変数から "\"(バックスラッシュ)を削除するのを防ぐ

awkが変数から

次のシェルコード行があります。

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.MBTC:\Users\athena\Work\Project_10\00.MBT

私は今迷子になり、ここで学ぶことがたくさんあります。

ベストアンサー1

awk渡された値をどのように処理するかについての質問です-v。渡された文字列のバックスラッシュを解釈します。

代わりに環境変数を渡してください。

here="$(cygpath -w "$PWD")" awk ... '{ print ... ENVIRON["here"] ... }'

ENVIRONawk現在の環境で名前で入力された変数値を含む連想配列。

あなたのコードにも関連しています。

おすすめ記事