将 awk 的结果放入数组

coo*_*ist 4 bash shell scripting awk ksh

当我在终端上运行以下命令时,

awk /984/ $files | awk -F, '{OFS=",";print $1,$4,$17}'
Run Code Online (Sandbox Code Playgroud)

在哪里,

files=`ls`
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

2013/08/18 12:51:37,11,724
2013/08/18 12:48:02,227,84769
Run Code Online (Sandbox Code Playgroud)

我希望创建一个脚本,运行该命令并以这种方式将上述结果分配给一个数组:(将行作为单独的元素)

array[0] = 2013/08/18 12:51:37,11,724
array[1] = 2013/08/18 12:48:02,227,84769
Run Code Online (Sandbox Code Playgroud)

但,

两者都不,

result=($(awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'))
Run Code Online (Sandbox Code Playgroud)

也不,

result2=`awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'`
Run Code Online (Sandbox Code Playgroud)

达到了我的目的。

如何获得我指定的数组?

dev*_*ull 5

当你说:

result=($(awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'))
Run Code Online (Sandbox Code Playgroud)

输出将被空格分割。设置IFS为换行符,您应该会看到所需的结果。说:

IFS=$'\n' result=($(awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'))
Run Code Online (Sandbox Code Playgroud)

而是将不同的输出行捕获到数组中。