この記事では、シェルスクリプト(bashスクリプト)を使用して、テキストファイルから検索した行を削除し、新たな行を追加する方法を紹介しています。
「sed」コマンドを使用します。例えば、下のようなテキストファイルがあったとします。
line1
line2
line3
line4
今回はsedコマンドを使って「line2」を削除して、その行に「line5」という文字列を追加します。コマンド実行結果は下のようになるはずです。
line1
line5 ←入れ替わる
line3
line4
Sample Code
#!/bin/bash
# -iオプションは必要!ないと置換結果を画面に標準出力するだけになってしまう。
# "/検索文字列/d" 検索文字列を含んだ行を削除
# "/検索文字列/a 挿入文字列" 検索文字列を含んだ行の次に挿入文字列を追加する
sed -i "/line2/d" sample.txt
sed -i "/line1/a line5" sample.txt
使用するオプションとパラメータはコメントに書いてある通りです。
実行してみると、しっかりとテキストファイルが変更されていることが分かります。
[libre@localhost test]$ cat sample.txt # catでテキストを確認
line1
line2 # 削除
line3
line4
[libre@localhost test]$ bash ./sed_line.sh # スクリプト実行
[libre@localhost test]$ cat sample.txt # catで結果を確認
line1
line5 # 追加
line3
line4
簡単な処理でしたが参考になればうれしいです。
コメント