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.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プログラマーは複雑なテキスト操作タスクのために正規表現の全力を活用でき、シェルのネイティブ機能を強化できます。