名前が4文字の長さのファイルを見つける

名前が4文字の長さのファイルを見つける

名前が4文字しかないファイルを探したいです。

たとえば、以下は3つのファイルです/tmp

$ ls /tmp
txt
file
linux

file出力は長さが4文字にすぎず、表示する必要があります。

答え1

?ファイルの一致にワイルドカードを使用します。

ls -d /tmp/????

これにより、ファイル名が4文字の長さのすべてのファイルとディレクトリが印刷されます。

@roaimaが提案したように、このフラグはこのパターンと一致するサブディレクトリの内容が表示されるのを-d防ぎます。ls

答え2

ファイルのみをリストします/tmp

cd /tmp
find . ! -name . -prune -path './????' -type f

再帰的にファイルを一覧表示/tmp:

find /tmp -path '*/????' -type f

答え3

努力する:

find /tmp -type f -print| awk -F/ ' length($NF)  == 4 '

awkですか:

  • /フィールド区切り文字として使用されます。
  • ファイル名の検索$NF(最後のフィールド)
  • 計算するlength
  • 値が 4 であることを確認してから印刷します。

答え4

perl(5.10以上)ソリューションもあります。

perl -E 'say for </tmp/????>;'

必要な長さを指定できる少し柔軟なバージョン:

perl -E 'my $w = "?" x shift; say for </tmp/$w>;' 4

関連情報