sed 複数の候補のどれかに一致したら置換する方法で、さらに一致部分をそのまま再利用したい場合

複数の候補を決めて、その中でどれかに一致すれば実行、そして、その一致した部分をそのまま使う。

sed -e -i 's#hoge\(1\|2\|3\|4\|5\|6\|7\|8\|9\|10\|11\|12\|13\|14\|15\|16\|17\|18\)hoge#hoge\1hige#' ファイル名

hogeとhogeの間に1~18までの数字がある…みたいな場合、1桁なら[0-9]とかでできるし、絶対に2桁って決まってる場合もやりようがありそうだけど、1桁か2桁かみたいな場合に私が使ってる方法。

\(1\|2\|3\|\)

ポイントは\(〜\)で囲んでおく事で一致した内容を再利用可能にする。

各数字・文字の区切りはパイプ1文字ではなく、バックスラッシュ・パイプで行う事、これをうっかり忘れると、上手くいかない。

\(〜\)で囲んだ部分は再利用したい場所で\1と書けば良い。\(〜\)が複数あれば\2\3\4…と数字を変える事によって使い分けられる。

LinuxやUbuntuをこれから試してみたい!と言う人や、今までWindowsで使っていたPCをWindowsは残したままLinuxやUbuntuを活用してみたい人は以下の本がおすすめ!
https://amzn.to/3Vl1oNx

LinuxやUbuntuを使おうとして、初心者の人が最初に「?」となりやすいのがコマンドでしょう。使い方がわかればこれほど簡単で便利なものはありませんが、最初は戸惑うのが普通です。そんな初心者に向けてマンガで超わかりやすいコマンドについて学べるのはシス管系女子みんとちゃんの本!
https://amzn.to/3FMTx5v

シェアする

  • このエントリーをはてなブックマークに追加

フォローする