2016-08-23 72 views
1

我想列出只有空格才具有空格的文件。

例如使用命令touch " "创建的文件。

这将创建一个有3个空格的文件。

我正在使用以下命令,但它没有列出所需的文件。

ls -lart | grep '[^a-zA-Z0-9]' 

回答

3

Do not parse ls。相反,你可以使用find使用正则表达式:

find . -regextype posix-extended -regex '^.*/ *$' 

由于man find说:这是整个路径上的匹配,不是搜索,我们只能说(学分约翰Kugelman):

find . -regextype posix-extended -regex '.*/ *' 

这将找到由多个空格组成的文件。

+0

@JohnKugelman真的,我没有检查过这种情况。谢谢,更新使用正确的正则表达式 – fedorqui

+1

锚点不应该是必需的。手册页上说:“这是一条全程的匹配,而不是搜索。” –

+0

感谢您分享有价值的信息。现在我不会使用ls进行解析。您能否请分享一些与查找命令使用相关的好文章。 –

1

您可以按照与任何文件相同的方式列出它:按名称或仅与其匹配的模式。

ls -lart " " 

模式需要bashshopt -s extglob(其他shell可能有一些simliar)。一种可能性:

ls -lart "+([[:space:]])" 
相关问题