繁体   English   中英

如何将ls命令的String输出拆分为仅包含bash中文件名的数组?

[英]How can I split the String output of an ls command into an array on just the filenames in 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]}

使用grep工具:

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

所有arr项目:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM