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