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)
达到了我的目的。
如何获得我指定的数组?
当你说:
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)
而是将不同的输出行捕获到数组中。