我正在运行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),我很难将输出以任何其他格式输出到第一个代码片段中所示的格式。
感谢任何建议,
感谢。
答案 0 :(得分:3)
array=(`dfs -ls | grep -Eo "df=[^ ]+"`)
echo ${array[0]}
答案 1 :(得分:0)
使用 grep 工具:
arr=($(dfs -ls | grep -o 'dt=[^[:space:]]*'))
所有arr
项:
echo ${arr[@]}
dt=2017-02-22 dt=2017-09-06 dt=2017-09-07