Fish Shell:
正規表現の使用
どのようにして:
Fish Shell自体にはregexのための組み込みコマンドはありませんが、grep、sed、awkのような外部コマンドを効果的に使用します。これらのコマンドは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.txtdata.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.Xawkによる高度なマッチング
最初の列が特定のパターンに一致する場合に第二列のデータを出力する:
awk '$1 ~ /^a[0-9]+$/ {print $2}' datafileこのコマンドはdatafileで最初の列が"a"に続く1つ以上の数字で始まる行を探し、第二列を出力します。
これらの外部コマンドを統合することで、Fish Shellプログラマーは複雑なテキスト操作タスクのために正規表現の全力を活用でき、シェルのネイティブ機能を強化できます。