我必须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
为什么这个逻辑不能按照预期过滤数据呢?
哪种脚本语言是最好的?
我可以在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中获得某些具体信息,请更新您的问题以指定您需要的信息。
那么这个呢?
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}//'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。