![](/img/trans.png)
[英]How can I pass all the filenames in a directory as an argument to a command in 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.