Linuxでファイル名を一致させるためのワイルドカードの使用例10


ワイルドカード(メタ文字とも呼ばれます)は、他の文字を表す記号または特殊文字です。 lsコマンドや rmコマンドなどの任意のコマンドと組み合わせて使用することで、指定した条件に一致するファイルを表示または削除することができます。

参考:Linuxでの連鎖演算子に関する10の実用的な例

これらのワイルドカードはシェルによって解釈され、結果は実行したコマンドに返されます。 Linuxには3つの主要なワイルドカードがあります。

  • An asterisk (*) – matches one or more occurrences of any character, including no character.
  • Question mark (?) – represents or matches a single occurrence of any character.
  • Bracketed characters ([ ]) – matches any occurrence of character enclosed in the square brackets. It is possible to use different types of characters (alphanumeric characters): numbers, letters, other special characters etc.

正しいファイル名を一致させるために使用するワイルドカードを慎重に選択する必要があります。以下の例で説明されているように、1つの操作でそれらすべてを組み合わせることも可能です。

Linuxでワイルドカードを使用してファイル名を一致させる方法

この記事の目的のために、各例を示すために次のファイルを使用します。

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. このコマンドは、 l (プレフィックス)で始まり、任意の文字が1回以上出現する名前で始まるすべてのファイルを照合します。

$ ls -l l*	

2. この例では、 users-0 という接頭辞を持ち、任意の文字が1回以上出現するすべてのファイル名をコピーするための * の使用方法を示しています。

$ mkdir -p users-info
$ ls users-0*
$ mv -v users-0* users-info/	# Option -v flag enables verbose output

3. 次のコマンドは、 l の後に任意の1文字が続き、 st.sh で終わる名前を持つすべてのファイルと一致します(サフィックスです)。 )

$ ls l?st.sh	

4. 以下のコマンドは、名前が l で始まり、その後に角かっこ内の任意の文字が続き、 st.sh で終わるすべてのファイルに一致します。 。

$ ls l[abdcio]st.sh 

Linuxでワイルドカードを組み合わせてファイル名を一致させる方法

次の例に示すように、ワイルドカードを組み合わせて複雑なファイル名の一致基準を作成できます。

5. このコマンドは、任意の2文字の前に st が付いた、任意の1文字以上の出現で終わるすべてのファイル名と一致します。

$ ls
$ ls ??st*

6. この例では、 [clst] のいずれかの文字で始まり、1つ以上の任意の文字の出現で終わるファイル名を照合します。

$ ls
$ ls [clst]*

7. この例では、 [clst] のいずれかの文字で始まり、その後に [io] のいずれかが続き、次に任意の1文字が続くファイル名のみ最後に t が続き、最後に1つ以上の任意の文字がリストされます。

$ ls
$ ls [clst][io]?t*

8. ここでは、任意の文字が1回以上出現し、その後に tar が続き、1回以上任意の文字が出現するファイル名が削除されます。

$ ls
$ rm *tar*
$ ls

Linuxで設定された文字を一致させる方法

9. これで、一連の文字の指定方法を見てみましょう。システムユーザー情報を含む以下のファイル名を検討してください。

$ ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

このコマンドは、名前が users-i で始まり、その後に数字、小文字または数字、そして数字が続き、任意の文字が1回以上出現するファイルで一致します。

$ ls users-[0-9][a-z0-9][0-9]*

次のコマンドは、 users-i で始まり、その後に数字、小文字または大文字または数字、さらに数字が続き、1つ以上の任意の文字で終わるファイル名を照合します。

$ ls users-[0-9][a-zA-Z0-9][0-9]*

これに続くこのコマンドは、 users-i で始まり、その後に数字、小文字または大文字または数字、さらに小文字または大文字が続き、1回以上出現する文字列で終わります任意の文字

$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Linuxで文字セットを無効にする方法

10. 記号を使用して、一連の文字を無効にすることもできます。次のコマンドは、 users-i で始まり、その後に数字、数字以外の任意の有効なファイル命名文字、そして任意の1つ以上の出現で終わるすべてのファイル名をリストします。キャラクター。

$ ls users-[0-9][!0-9][a-zA-Z]*

それは今のところすべてです!上記の例を試したことがあれば、Linuxでワイルドカードがファイル名とどのように一致するかをよく理解できたはずです。

Linuxでワイルドカードを使用する例を示す次の記事も読んでください。

  1. How to Extract Tar Files to Specific or Different Directory in Linux
  2. 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions
  3. 10 Useful Tips for Writing Effective Bash Scripts in Linux
  4. How to Use Awk and Regular Expressions to Filter Text or String in Files

共有することや質問がある場合は、以下のコメントフォームを使用してください。