相关疑难解决方法(0)

如何在awk脚本中使用shell变量?

我找到了一些办法通过外壳变量的awk脚本,但我感到困惑'".

首先,我尝试使用shell脚本:

$ v=123test
$ echo $v
123test
$ echo "$v"
123test
Run Code Online (Sandbox Code Playgroud)

然后尝试了awk:

$ awk 'BEGIN{print "'$v'"}'
$ 123test
$ awk 'BEGIN{print '"$v"'}'
$ 123
Run Code Online (Sandbox Code Playgroud)

为什么有区别?

最后我试过这个:

$ awk 'BEGIN{print " '$v' "}'
$  123test
$ awk 'BEGIN{print ' "$v" '}'
awk: cmd. line:1: BEGIN{print
awk: cmd. line:1:             ^ unexpected newline or end of string 
Run Code Online (Sandbox Code Playgroud)

我对此感到困惑.

bash shell awk

260
推荐指数
5
解决办法
46万
查看次数

将系统命令的输出分配给变量

我想system在awk脚本中运行该命令并将其输出存储在变量中.我一直试图这样做,但命令的输出总是进入shell而我无法捕获它.关于如何做到这一点的任何想法?

例:

$ date | awk --field-separator=! {$1 = system("strip $1"); /*more processing*/}
Run Code Online (Sandbox Code Playgroud)

应该调用strip系统命令而不是将输出发送到shell,应该将输出分配回来$1进行更多处理.现在是Rignt,它将输出发送到shell并将命令的retcode分配给$1.

awk pipe

47
推荐指数
5
解决办法
8万
查看次数

标签 统计

awk ×2

bash ×1

pipe ×1

shell ×1