
我必须parsingls -Al output并获取文件或目录名称
ls -Al输出:
drwxr-xr-x 12 s162103 studs 12 march 28 2012 personal domain drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_HTML drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
我应该只使用ls -Al | <something> ls -Al | <something>
例如:
bash – 最后一个特定字符后的Expression
为什么使用pipe道在PowerShell中不起作用?
在bash中使用了什么-ex选项? #!/ bin / bash -ex mean
将Word文档/ docx文件转换为pdf时,文件系统监视器停止工作
在Ubuntu上恢复挂起进程的最佳语言/方法?
ls -Al | awk '{print $8}'
但是这不起作用,因为如果目录名称中有空格,则$8不是名称,而是名称的一部分。 也许有一些实用程序可以删除姓氏或删除任何东西? 我需要find任何解决scheme。 请帮忙!
编辑:我知道什么parsingls -Al是个坏主意,但我应该完全用上面的构造parsing它! 没有办法使用这样的事情
for f in *; do somecommand "$f" done
为什么这个逻辑不能按照预期过滤数据呢?
批循环错误 – 只复制1个文件
哪种脚本语言是最好的?
我可以在Eclipse运行configuration中运行脚本吗?
用户使用bash运行的进程数
这个ls -Al |awk '{$1=$2=$3=$4=$5=$6=$7=$8="";print $0}'我知道这是一个便宜的窍门,但是因为你不想使用其他的东西比我的 – 我不能想更好的事情…
不要解析ls -Al ,如果你需要的只是文件名。
你可以把所有的文件名放在一个数组中:
files=( * )
或者你可以直接迭代文件:
for f in *; do echo "$f" done
如果您需要从ls中获得某些具体信息,请更新您的问题以指定您需要的信息。
基于@ squiguy请求评论,我发表我的评论作为答案:
那么这个呢?
ls -1A
而不是l (L,这个字母),一个1 (一个数字)。 它只会列出文件的名称。
还值得注意的是, find可以做你正在寻找的东西:
这个目录中的所有东西,相当于ls :
find . -maxdepth 1
递归地类似于ls -R :
find .
只有给定目录中的目录:
find /path/to/some/dir -maxdepth 1 -type d
md5sum每个常规文件:
find . -type f -exec md5sum {} ;
希望awk适合你:
ls -Al | awk 'NR>1{for(i=9;i<NF;i++)printf $i" ";print $i}'
如果你对sed感兴趣,
ls -Al | sed '1d;s/^([^ ]* *){8}//'
总结以上是内存溢出为你收集整理的shell必须parsingls -Al输出并获取最后一个字段(文件或目录名称)任何解决scheme全部内容,希望文章能够帮你解决shell必须parsingls -Al输出并获取最后一个字段(文件或目录名称)任何解决scheme所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)