如何将LS命令的字符串输出拆分为Bash中的文件名上的数组



我正在运行HDFS DFS -LS命令,并将输出存储在bash中的变量中。存储在变量中的输出如下:

Found 3 items drwxrwx--- - user user 0 2017-07-31 15:47 /user/example/test/dt=2017-02-22 drwxr-xr-x - user user 0 2017-09-11 11:32 /user/example/test/dt=2017-09-06 drwxrwxr-x - user user 0 2017-09-08 15:46 /user/example/test/dt=2017-09-07

我试图将目录名称仅在数组中解析,看起来像:

array=[dt=2017-02-22, dt=2017-09-06, dt=2017-09-07]

由于在原始-LS命令上添加额外的开关(由于Hadoop API)的局限性,我一直在努力将输出以任何其他格式获取到第一个代码片段中显示的任何格式。

任何建议都将被赞赏,

谢谢。

  array=(`dfs -ls | grep -Eo "df=[^ ]+"`)
  echo ${array[0]}

with grep 工具:

arr=($(dfs -ls | grep -o 'dt=[^[:space:]]*'))

所有arr项目:

echo ${arr[@]}
dt=2017-02-22 dt=2017-09-06 dt=2017-09-07

最新更新