我确实使用了手册,但我无法将所有选项放在一起,以了解上述代码实际上在做什么。
awk -v v='"' 'BEGIN{FS=OFS=v}{gsub(",","",$2);print }' \
${SOURCE_LOCATION}/TEMP1_$file_name>${SOURCE_FILE_LOCATION}/TEMP2_$file_name
我们何时必须在'$'之后的代码中使用花括号,何时不使用。请解释。任何帮助都非常感谢。
答案 0 :(得分:2)
此命令将删除第二个字段中的所有逗号。字段分隔符是引号字符"
(由FS
指定)。
例如,以下字符串:
something "string, with, commas" something "else, here, and more"
将转换为:
something "string with commas" something "else, here, and more"
@Joni已经很好地解释了{}
在变量名中的重要性。
从文件${SOURCE_LOCATION}/TEMP1_$file_name
读取输入,输出重定向到${SOURCE_LOCATION}/TEMP2_$file_name
。
答案 1 :(得分:1)
当变量名后面跟不是变量名的一部分但可能与之混淆的东西时,你必须使用大括号语法。例如,比较
hello="Hello"
echo $hello_world
与
hello="Hello"
echo ${hello}_world
第一个输出一个空行(或shell变量hello_world
的值,如果存在),第二个输出Hello_world
。
在您的情况下,它们不是必需的,因为斜杠永远不会是变量名称的一部分。有些人更喜欢使用括号来清楚变量开始的位置以及变量的结束位置,即使它们不是必需的。