GNU/Linux >> Linux の 問題 >  >> Linux

Linux でシェル トークンを生成するためにシェル拡張を使用する方法

シェル拡張

シェルで作業している間、情報のセットまたは範囲が繰り返されることがよくあります。シェル拡張は、コンパクトな構文を使用して多数のシェル トークンを生成するのに役立ちます。コマンドがトークンに分割された後、展開はコマンド ラインで実行されます。利用可能な多くの展開のうち、パス名、ファイル名、ブレース展開については先に説明します。

パス名展開

パス名の展開により、ディレクトリ階層内の場所の変更が簡素化されます。パス名の展開には次が含まれます:
チルダ (~) 現在のユーザーのホーム ディレクトリの絶対パス名を表す文字
– 指定したユーザーのホーム ディレクトリを表す、ユーザー名のチルダ (~) 文字
ダッシュ ( -) 前の作業ディレクトリを表す文字

注意 :チルダ (~) 文字は、Bourne シェルを除くすべてのシェルで使用できます。

それぞれの拡張文字について、次の例を検討してください。
1.チルダ (~) 文字を使用してディレクトリを dir1 に変更します。

$ cd ~/dir1
$ pwd 
/home/user/dir1/

2. チルダ (~) 文字とそれに続くユーザー名を使用して、ディレクトリをユーザーのホーム ディレクトリに変更します。

$ cd ~user
$ pwd 
/home/user

3. – 拡張文字を使用して、user ディレクトリと tmp ディレクトリを切り替えます。

$ cd
$ pwd
/home/user
$ cd /tmp
$ pwd
/tmp
$ cd -
/export/home/user1
$ cd -
/tmp

ファイル名の展開

ファイル名の展開は次のとおりです:

  • アスタリスク (*) 文字
  • 疑問符 (?) 文字
  • 角かっこ ([]) 文字

1.アスタリスク (*) 文字

アスタリスク (*) 拡張文字は、ワイルドカード文字とも呼ばれ、隠しファイルの先頭のピリオド (.) を除いて、0 個以上の文字を表します。たとえば、文字 f で始まり、その後に 0 個以上の他の文字が続くすべてのファイルとディレクトリを一覧表示します。

$ ls f*
file.1 file.2 file.3 file4

もう 1 つの例は、0 個以上の文字が前に付いた数字 3 で終わるすべてのファイルとディレクトリを一覧表示することです。

$ ls *3
file.3 file3

2.疑問符 (?) 文字

疑問符 (?) 文字はワイルドカード文字とも呼ばれ、隠しファイルの先頭のピリオド (.) を除く任意の 1 文字を表します。たとえば、文字列 dir で始まり、その後に別の 1 文字が続くすべてのファイルとディレクトリを一覧表示します。

 $ ls dir?
dir1:
coffees fruit trees
dir2:
beans notes recipes

疑問符 (?) 文字を使用したエントリに一致するファイルがない場合、エラー メッセージが表示されます。

$ ls z?
z?: No such file or directory

3.角かっこ ([]) 文字

角かっこ ([] ) 文字は、1 つの文字位置の文字のセットまたは範囲を表します。
– 文字のセットは、[acb] などの任意の数の特定の文字です。セット内の文字は、必ずしも任意の順序である必要はありません。たとえば、[abc] は [cab] と同じです。
– 文字の範囲は、順序付けられた一連の文字です。

  • 範囲は、[a–z] または [0–9] のように、最初の文字に続いてハイフン (-) と最後の文字をリストします。
  • 範囲を指定するときは、出力に表示する順序で文字を並べます。
  • たとえば、[A–Z] または [a–z] を使用して、それぞれ大文字または小文字のアルファベット文字を検索します。

たとえば、a から f までの文字で始まるすべてのファイルとディレクトリを一覧表示します。

$ ls [a-f]*
brands    dante_1    file.1    file2    file4 
celery    feathers    file1    file.3   fruit 
dante    feathers_6    file.2    file3     fruit2

たとえば、文字 f または p で始まるすべてのファイルとディレクトリを一覧表示します。

$ ls [fp]*
perm    file.1    file.2    file.3    file4    fruit2
feathers_6   file1    file2     file3     fruit

ブレース拡張

ブレース {} 展開は、任意の文字列を生成できるメカニズムです。ブレース展開されるパターンは、オプションのプリアンブルの形式を取り、その後に一連のカンマ区切りの文字列または 1 組の中括弧の間のシーケンス式が続き、その後にオプションのポストスクリプトが続きます。プリアンブル「a」は、中括弧内に含まれる各文字列の前に付けられ、後置スクリプト「e」が結果の各文字列に追加され、左から右に展開されます。

$ echo a{d,c,b}e
ade ace abe


Linux
  1. Linuxでcronを使用する方法

  2. 大規模なLinuxバックアップに高度なrsyncを使用する方法

  3. Linuxシステムリカバリにsystemd-nspawnを使用する方法

  1. LinuxでSuコマンドを使用する方法

  2. Linuxでシェルを変更する方法

  3. Linux でシェル エイリアスを使用する方法

  1. Linux で FTP を使用してファイルを転送する方法

  2. Linux で tar コマンドを使用する方法

  3. Linux でコマンド ライン シェル関数を使用する方法