名前が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