linux—如何将ls命令的字符串输出拆分为bash中文件名上的数组?

dbf7pr2w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(365)

我正在运行一个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命令上添加额外开关的限制(由于hadoopapi),我很难获得第一个代码片段中显示的任何其他格式的输出。
如有任何建议,我们将不胜感激,
谢谢。

5gfr0r5j

5gfr0r5j1#

使用grep工具:

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

全部 arr 项目:

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

insrf1ej2#

array=(`dfs -ls | grep -Eo "df=[^ ]+"`)

  echo ${array[0]}

相关问题