我正在尝试使用awk
以,
.分隔的行中的各个列打印变量 。我要打印的列和模式存储在另一个变量中b
。图案a
和印刷图案b
如下:
a='15986327,415532694,850257614,875121642,20140819'
b='$1","$2","$4'
Run Code Online (Sandbox Code Playgroud)
我正在尝试获得如下输出。
15986327,415532694,875121642
Run Code Online (Sandbox Code Playgroud)
我正在尝试b
使用-v
switch将模式传递给 awk,但不确定如何在print
inside 中使用它awk
。尝试了下面的命令,但这不是我想要的输出。
echo $a |awk -v ba="${b}" -F"," '{print ba}'
$1","$2","$4
echo $a |awk -v ba="${b}" -F"," '{print $ba}'
15986327,415532694,850257614,875121642,20140819
Run Code Online (Sandbox Code Playgroud)
您不需要使用 variable ba
,请尝试:
$ echo $a | awk -F',' '{print '"$b"'}'
15986327,415532694,875121642
Run Code Online (Sandbox Code Playgroud)
有了这个,$b
由外壳扩展,而不是由awk
. 其余的awk
语句不受影响,因为它们用单引号括起来。