传递给文件中字段的awk变量

传递给文件中字段的awk变量,awk,Awk,我在使用awk变量插入文件的字段2中时遇到问题。这是我的数据: data='AAA||CCC|DDD|EEE|FFF' ds='BBB' 我想在文件的字段2中插入变量ds的值。因此,我编写了一些测试代码来查看awk中的行为: $ echo "$data" | awk -F'|' -v tmp="$ds" '{print $1}' AAA <== that works ... now I try to print my variable $ echo "$data" | aw

我在使用awk变量插入文件的字段2中时遇到问题。这是我的数据:

data='AAA||CCC|DDD|EEE|FFF'  
ds='BBB'
我想在文件的字段2中插入变量ds的值。因此,我编写了一些测试代码来查看awk中的行为:

$ echo "$data" | awk -F'|' -v tmp="$ds" '{print $1}'  
AAA <== that works ... now I try to print my variable  

$ echo "$data" | awk -F'|' -v tmp="$ds" '{print $1 $tmp}'  
AAAAAA||CCC|DDD|EEE|FFF <== output but I was expecting AAA|BBB  
$echo“$data”| awk-F'|'-v tmp=“$ds”{print$1}”

AAA在awk中,您不会像在bash中一样,将
$
放在变量前面以获取其值。只需输入变量名:

$ echo "$data" | awk -F'|' -v tmp="$ds" '{print tmp}'  
BBB

$
仅用于获取字段的值(如
$1
$2
等)。放入
$var
时,该字段基于
var
的数值。如果
var
的值为7,例如,
$var
是第7个字段的值。如果
var
为0或某个非数值,
$var
$0
相同,这是您在尝试中看到的整行内容。

在awk中,您不会像在bash中一样将
$
放在变量前面以获取其值。只需输入变量名:

$ echo "$data" | awk -F'|' -v tmp="$ds" '{print tmp}'  
BBB
$
仅用于获取字段的值(如
$1
$2
等)。放入
$var
时,该字段基于
var
的数值。如果
var
的值为7,例如,
$var
是第7个字段的值。如果
var
为0或某个非数值,
$var
$0
相同,这是您在尝试中看到的整行