awk将命令输出插入变量

Panagiss

我试图将下面的输出插入变量中x输出是一个字符串。我以前做过。

k="psz"

当我这样做时,它可以正常工作,并且在执行echo $ x时可以获得预期的输出

x=$( awk -v a="k" -F '[:,]' '{ if($1 == "psz")  print $5 }' /etc/passwd )

但是当我尝试在下面使用它时,它不起作用

x=$( awk -v a="k" -F '[:,]' '{ if($1 == a)  print $5 }' /etc/passwd )

它不起作用,echo$x给了我一个空白行。

accdias

a使用字符串k而不是variable的值进行设置$k如果设置正确,代码将正常工作。看:

k='accdias'
x=$(awk -va=$k 'BEGIN{FS=":"} $1==a {print $5}' /etc/passwd)
echo $x
Antonio Dias

我正在对此进行编辑,以显示awk不使用变量将变量值传递给程序的另一种方法-v

k='accdias'
x=$(awk 'BEGIN{FS=":"} $1==ARGV[2] {print $5}' /etc/passwd $k)
echo $x
Antonio Dias

在上述示例中,上面的代码ARGV[0]将设置为awkARGV[1]将设置为/etc/passwd,最后ARGV[2]将设置为$kvalue accdias


Ed Morton的编辑(请参见下面的评论):

k='accdias'
x=$(awk -v a="$k" 'BEGIN{FS=":"} $1==a {print $5}' /etc/passwd)
echo "$x"
Antonio Dias

k='accdias'
x=$(awk 'BEGIN{FS=":"; a=ARGV[2]; ARGV[2]=""; ARGC--} $1==a {print $5}' /etc/passwd "$k")
echo "$x"
Antonio Dias

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将powershell命令的输出存储在变量中

来自分类Dev

将命令的输出分配给变量

来自分类Dev

通过单个命令将awk的管道输出传递给sed

来自分类Dev

如何将bash / awk命令放入变量(不输出命令)

来自分类Dev

将awk命令“结果”作为变量传递给date命令

来自分类Dev

将命令的输出设置为变量

来自分类Dev

当命令包含空格时,将命令输出检索到变量

来自分类Dev

将awk输出存储在变量中

来自分类Dev

将命令输出管道传输到Awk

来自分类Dev

无法将Awk输出到变量,表示权限被拒绝

来自分类Dev

awk将错误的变量输出到文件

来自分类Dev

将输出存储在变量中并在命令中使用变量

来自分类Dev

如何将AWK的输出存储为变量,以在BASH脚本的SED命令中使用?

来自分类Dev

将awk gsub命令的输出重定向到文件

来自分类Dev

将命令输出设置为变量

来自分类Dev

如何将bash / awk命令放入变量(不输出命令)

来自分类Dev

将ftp命令输出存储在变量中

来自分类Dev

将命令的输出重定向到变量

来自分类Dev

将awk命令结果输出到变量

来自分类Dev

将命令的输出设置为变量

来自分类Dev

将命令的输出存储在UNIX的变量中

来自分类Dev

当命令包含管道时,将命令输出存储在变量中

来自分类Dev

将awk命令的输出存储到变量中

来自分类Dev

将命令的输出保存到变量

来自分类Dev

unix 中的 awk 命令 - 将记录插入到 oracle

来自分类Dev

无法将 awk 命令的输出存储到变量中

来自分类Dev

将 awk 变量传递给命令并读取输出

来自分类Dev

将命令的输出放入变量 GoCD

来自分类Dev

将 awk 输出分配给变量