【发布时间】:2014-02-03 12:12:15
【问题描述】:
当我在终端上运行以下命令时,
awk /984/ $files | awk -F, '{OFS=",";print $1,$4,$17}'
在哪里,
files=`ls`
我得到这个输出:
2013/08/18 12:51:37,11,724
2013/08/18 12:48:02,227,84769
我希望创建一个脚本,运行该命令并以这种方式将上述结果分配给一个数组:(单独的行作为单独的元素)
array[0] = 2013/08/18 12:51:37,11,724
array[1] = 2013/08/18 12:48:02,227,84769
但是,
都不是,
result=($(awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'))
也不,
result2=`awk /string/ $files | awk -F, '{OFS=",";print $1,$4,$17}'`
实现了我的目的。
如何获取我指定的数组?
【问题讨论】:
-
您应该使用像
awk '/string/' "$files"这样的引号并将文件读取更改为files=$(ls)。 result2 是错误的,因为它只计算命令,需要外部()存储在数组中。 -
在
$files中添加引号可能会导致错误的结果,因此请忽略。
标签: bash shell scripting awk ksh