我有这行 shell 代码:
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
其中包含当前环境中按名称键控的变量值。
还与您的代码相关: