我已使用ls -alis
制作文件夹内容列表,并使用awk
过滤结果。
我在$11 != "." && $11 != ".."
遇到了一些问题。我不想显示文件夹.
和文件夹..
,但它们仍在此处。
ls --color -alis /home/user/ |
tr -s ' ' | cut -d " " -f11 |
awk '$1 !~"^/\./$" { print $1 }'
我也试过$11 !~ "^/./$"
。
答案 0 :(得分:0)
Parsing output of ls
is not recommended因为文件名可以包含空格新行等,并会破坏您的管道命令。
根据您的要求,您可以将此printf
与xargs
:
printf "%s\0" * | xargs -0 ls --color -Alis
答案 1 :(得分:0)
不要双引用正则表达式,并且锚点(^
和$
)进入正则表达式内部:
awk '$11 !~ /^\.\.?$/ { print }'
这与字段11包含一个或两个点(仅)的行不匹配。
这涉及awk
脚本的问题;但是,你是否应该解析ls
的输出是有争议的,因为它可能是不明确的。