sed#
基本的なコマンド#
sed
コマンドは UNIX および Linux システムでテキストを編集するための強力なツールです。
以下は sed
の基本的な使い方をいくつか示します:
- 置換:
テキストの置換は
sed
の最も一般的な使い方の一つです。
例:hello.txt
というファイルの中で "apple" を "orange" に置換する場合
すべての "apple" を "orange" に置換する場合
- 行の削除: 特定のパターンを含む行を削除する場合
例:hello.txt
の中で "apple" という単語を含むすべての行を削除する場合
-
行を表示: 特定のパターンを含む行だけを表示する場合
-
行の追加と挿入: 例:
hello.txt
の3行目の後に新しい行を追加する場合
3行目の前に新しい行を挿入する場合
これは sed
コマンドの基本的な使い方の一部です。
sed
は非常に多機能で、これらの基本的な操作だけでなく、さまざまな高度なテキスト操作もサポートしています。
レシピ#
sed
は非常に強力で、多岐にわたる操作が可能です。以下はいくつかの一般的な sed
レシピを示します:
- 特定の行を削除:
- 最初の行を削除する:
-
最後の行を削除する:
-
特定の行だけを表示:
-
最初の5行だけを表示する:
-
行の範囲を表示または削除:
- 10行目から20行目までを表示する:
-
10行目から20行目までを削除する:
-
パターンにマッチする行の前後に行を追加:
- "apple" という文字列がある行の前に "fruit:" という行を追加する:
-
"apple" という文字列がある行の後に "delicious" という行を追加する:
-
特定の文字列が含まれる行を削除:
-
"apple" という文字列を含む行をすべて削除する:
-
空白行を削除:
-
すべての空白行を削除する:
-
行番号に基づいて置換:
- 5行目の "apple" を "orange" に置換する:
これらは sed
の基本的なレシピの一部です。実際のニーズに応じて、これらのコマンドを組み合わせたり、変更したりすることができます。
正規表現#
sed
コマンドで正規表現を使用すると、非常に柔軟な文字列操作が可能になります。以下は、正規表現を使った sed
の使用方法のいくつかを示します:
-
任意の数字を置換する:
-
特定のパターンの後の文字列を置換: "apple" の後に続く任意の数字を "orange" に置換する場合:
-
行の先頭や末尾にマッチするパターンを検索・置換:
- 行の先頭が "#" で始まる行を削除する:
-
行の末尾が "apple" で終わる行に "orange" を追加する:
-
文字クラスを使用:
-
小文字のアルファベットをすべて "X" に置換する:
-
キャプチャグループを使用して部分置換: "apple" の前と後ろの数字を入れ替える場合(例: "123apple456" → "456apple123"):
-
任意の文字(.)と繰り返し(*):
- "apple" と "orange" の間の文字をすべて削除する:
正規表現の詳細や他の特性を学ぶと、sed
でできることがさらに広がります。
上記は基本的な例に過ぎませんが、これを基に多くのパターンマッチングやテキスト操作タスクを実行することができます。