Fish Shell:
正規表現の使用

どのようにして:

Fish Shell自体にはregexのための組み込みコマンドはありませんが、grepsedawkのような外部コマンドを効果的に使用します。これらのコマンドはregexをサポートしており、スクリプトにregex操作を組み込むことを可能にします。

grepによる基本的なパターンマッチング

ファイル内のパターンに一致する行を検索する:

grep '^[0-9]+' myfile.txt

このコマンドはmyfile.txtで、1つ以上の数字で始まる行を見つけます。

sedによる抽出と置換

ファイルから電話番号を抽出する:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

data.txt内の"foo"のすべての発生を"bar"に置換する:

sed 's/foo/bar/g' data.txt

基本的なRegexのためのstringの使用

Fish Shellのstringコマンドは、マッチや置換のようなシンプルなregex操作をサポートしています:

文字列内のパターンをマッチ:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

出力:

3.1.2

‘fish’に続く数字を’X.X.X’に置換する:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

出力:

Welcome to fish X.X.X

awkによる高度なマッチング

最初の列が特定のパターンに一致する場合に第二列のデータを出力する:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

このコマンドはdatafileで最初の列が"a"に続く1つ以上の数字で始まる行を探し、第二列を出力します。

これらの外部コマンドを統合することで、Fish Shellプログラマーは複雑なテキスト操作タスクのために正規表現の全力を活用でき、シェルのネイティブ機能を強化できます。