ワイルドカードの組み合わせ
CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 28/82。
ワイルドカードの真の力は、それらを一緒に組み合わせるときに発揮されます。1つのパターンで *、? および [] を混ぜることで、非常に精密なファイルマッチングを作成できます。
以下のファイルシステム:
photo_1.jpg
photo_2.jpg
photo_10.jpg
photo_1.png
photo_2.png
report_1.txt
report_2.txt
notes.txt* と [] の組み合わせ:
すべての画像ファイル(.jpg と .png の両方)を一覧表示:
ls *.{jpg,png} # ブレース展開を使用
ls *.[jp]* # .jpg, .png, .jpeg などをマッチ? と [] の組み合わせ:
一桁の写真ファイルのみをリストアップ:
ls photo_[0-9].jpg # matches photo_1.jpg and photo_2.jpg only3つすべてを組み合わせる:
1桁の数字を含む任意のレポートファイルにマッチ:
ls *_[0-9].txt # matches report_1.txt and report_2.txt任意の文字で始まり、特定の文字が続くファイルにマッチ:
ls [pr]*_?.txt # starts with p or r, then anything, then underscore, one char, .txt他のコマンドとのワイルドカードの使用:
すべての1桁のjpg写真をフォルダに移動:
mv photo_[0-9].jpg archive/任意のサブフォルダーからすべての.logファイルを削除:
rm */*.logチャレンジ
簡単ワイルドカードの組み合わせを使用して、1桁の数字が付いた.jpgの写真ファイルのみをリストアップしてください — つまりphoto_1.jpgやphoto_2.jpgは表示しますが、しないようにphoto_10.jpgやどのような.pngファイルも。
ヒント: 固定テキスト
photo_、1桁の数字のための括弧範囲、および.jpg拡張子を1つのパターンに組み合わせます。
チートシート
ワイルドカードは、*、?、[] を混ぜて使用することで、組み合わせて 正確なファイルマッチングパターンを構築できます。
* と [] の組み合わせ:
ls *.{jpg,png} # 複数の拡張子に対してブレース展開を使用
ls *.[jp]* # .jpg、.png、.jpeg などに一致? と [] の組み合わせ:
ls photo_[0-9].jpg # 1桁の写真ファイルのみに一致3つのワイルドカードすべてを組み合わせ:
ls *_[0-9].txt # アンダースコア、1桁、.txt で終わるファイルに一致
ls [pr]*_?.txt # p または r で始まり、その後任意の文字、アンダースコア、1文字、.txt他のコマンドとのワイルドカードの使用:
mv photo_[0-9].jpg archive/ # 1桁の jpg 写真を移動
rm */*.log # 任意のサブフォルダから .log ファイルを削除自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。