0

我确实使用了手册,但我无法将所有选项放在一起来理解上面的代码实际上在做什么。

awk -v v='"' 'BEGIN{FS=OFS=v}{gsub(",","",$2);print }'  \
  ${SOURCE_LOCATION}/TEMP1_$file_name>${SOURCE_FILE_LOCATION}/TEMP2_$file_name

我们什么时候必须在代码中在“$”之后使用大括号,什么时候不需要。请解释。非常感谢任何帮助。

4

2 回答 2

2

此命令将删除第二个字段中的所有逗号。字段分隔符是引号字符"(由 指定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.

于 2013-07-23T13:54:24.213 回答
1

当变量名后跟不属于变量名但可能与之混淆的内容时,您必须使用大括号语法。例如,比较

hello="Hello"
echo $hello_world

hello="Hello"
echo ${hello}_world

第一个输出空行(或 shell 变量 的值hello_world,如果存在),第二个输出Hello_world.

在您的情况下,它们不是必需的,因为斜杠永远不能成为变量名的一部分。有些人喜欢使用方括号来明确变量的开始位置和结束位置,即使它们不是必需的。

于 2013-07-23T13:51:08.373 回答