2016-08-23 3 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 true、私はそのような場合をチェックしなかった。ありがとう、適切な正規表現を使用するように更新 – fedorqui

+1

アンカーは必要ありません。 manページには次のように書かれています。「これは検索ではなくパス全体で一致します。 –

+0

貴重な情報をお寄せいただきありがとうございます。今私はlsを解析に使用しません。あなたはfindコマンドの使用に関連する良い記事をいくつか共有してください。 –

1

ファイル名と同じ方法でもリストすることができます。名前でも、それと一致するパターンでも指定できます。

ls -lart " " 

パターンがbashshopt -s extglobを(他のシェルがsimliar何かを持っている場合があります)が必要です。 1つの可能性:

ls -lart "+([[:space:]])" 
関連する問題