Unix コマンドは、1 桁の数字と TXT 拡張子で終わるすべてのファイルを返します。

Unix コマンドは、1 桁の数字と TXT 拡張子で終わるすべてのファイルを返します。

1桁の数字で終わり、TXT拡張子を持つすべてのファイルを返すコマンドは何ですか?

ベストアンサー1

ファイル(または他の種類のノード)を見つける最も基本的なツールの1つがこのfindユーティリティです。

find ./ -type f -name '*[!0-9][0-9].txt'

次を検索します。

  • ..../現在のディレクトリ()で再帰的に実行されます。これを別のパスに変更したり、ほとんどのバージョンでデフォルトのままにすることもできますfind
  • ...ディレクトリ、デバイスノード、シンボリックリンクなど以外のファイルエントリの場合(-type f)。他のタイプも見つけるには、このオプションを無視できます。
  • ...与えられた名前パターンに一致する項目。 findがコマンドを受け取る前にbashやシェルがそれをglobパターンとして解釈しないように、パターンの周りに一重引用符を使用しています。アスタリスクは任意の数の文字と一致し、ファイルは数字、数字、拡張子で終わらないでください。 ( -name '*[0-9].txt')

ファイル名の後に単に数字が続くファイルがある場合、.txt上記のコマンドは数字の前に数字以外の数字が必要なため、そのファイルを見逃してしまいます。次の対応するコマンドには、ブール演算子を使用して数値のみを含むファイル名(-ois "or"および!is "not")が含まれています。

find ./ -type f \( -name '*[!0-9][0-9].txt' -o -name '[0-9].txt' \)
find ./ -type f -name '*[0-9].txt' ! -name '*[0-9][0-9].txt'

大文字と小文字を区別することに注意してください。機密性の低い一致が必要な場合は、代わりにを使用して-iname同様-nameの項目を一致させることもできますfile4.TXT。また、ファイルがその拡張子を持つテキストファイルであると主張しても、それが本当であることを意味するわけではありません。 Linuxでは、名前に関係なくすべてのファイルの種類が可能です。他の拡張子があるか、まったく拡張子のないテキストファイルがある可能性があります。

おすすめ記事