投稿履歴
- 「Git pull 強制」は危険?ローカル変更を破棄してリモートに合わせる安全な方法
- 【保存版】PNGとJPEGの違いを徹底比較!用途別使い分けガイド
- GUIとCUIの違いとは?初心者でもわかるメリット・デメリットと使い分けを徹底解説
- Web1 Web2 Web3 違いを徹底解説:それぞれの特徴と比較
- SMTP・POP3・IMAPの違いを徹底解説 | メール送受信プロトコル
- 【Linux】容量の大きいファイル・ディレクトリを確認する方法
- nc(Netcat)コマンド徹底解説|ポート指定で疎通確認する
- 【VSCode】JSON・XMLを整形・最小化する方法
- 【Excel】シートが見えない!表示されない原因と対処法
- 【Linux】lsofコマンドの見方・活用ガイド
- 【A5M2】テーブルにNULL値を入力する方法
- 【Linux】標準出力と標準エラー出力の違い
- DRAMとSRAMの違い・覚え方を徹底解説!
- 【サクラエディタ】スペースとタブを置換する方法
- 【Excel】VBAの起動方法(開発タブが表示されない場合)
- 今日から使える!Gitコミットメッセージの書き方と型
- 【Excel】区切り指定でCSVを貼り付ける方法
- 【Linux】テキストファイルの重複行を削除する方法
- 【サクラエディタ】重複行を削除する方法
- Excelのプルダウンリストをショートカットで操作・管理する
Linuxのsedコマンドで、ファイルの文字列を置換、行削除する方法を解説します。
sedコマンドとは
入力されたテキストデータを行単位で読み取り、テキスト変換などの編集して、行単位で出力を行います。
主に文字列の置換や抽出に用いられて、正規表現にも対応しています。
sedはStream EDitorの略称です。
sedコマンドによる置換の構文
sedコマンドに-iオプションを指定することで置換後文字列でファイルを保存します。
sed -i s/置換前文字列/置換後文字列/g ファイル名sオプションは「substitute(代替)」という意味の英単語の頭文字で、sを指定することで置換前文字列を置換後文字列に置き換えることができます。
gオプションは、一致する文字列をすべて置換する際に指定します。
文字列を置換して保存
実行コマンド例
以下コマンドでtest.txtのit-lifeをIT-LIFEへ置換します。
sed -i s/it-life/IT-LIFE/g test.txt置換前後の確認
以下の通り、置換が行われたことを確認できました。
置換前の確認
$ cat test.txtit-life.net it-life.net applebanana it-life.net it-life.net置換後の確認
$ cat test.txtIT-LIFE.net IT-LIFE.net applebanana IT-LIFE.net IT-LIFE.net指定した行を削除して保存
sedコマンドに'1,3d'のように指定することで、行を削除することができます。
'1,3d'の場合は1行目~3行目の行を削除するという意味になります。
指定行の削除前
$ cat test2.txtaaabbbcccdddeeefff1行目~3行目を削除して保存
sed -i '1,3d' test2.txt指定行の削除後
以下の通り、1行目のaaaから、3行目のcccが削除されたことを確認できました。
$ cat test2.txtdddeeefff特定の文字列を含む行を削除して保存
特定の文字列を含む行を削除したい場合は'/eee/d'のように指定します。
'/eee/d'はeeeを含む行を削除するという意味です。
特定文字列行の削除前
$ cat test2.txtdddeeefffeeeを含む行を削除して保存
sed -i '/eee/d' test2.txt特定文字列行の削除後
以下の通りeeeの行が削除されたことを確認できました。
$ cat test2.txtdddfffsedコマンドのまとめ
sオプションを指定することで置換前文字列を置換後文字列へ変換できる。iオプションを指定することで置換後文字列でファイルを保存できる。gオプションを指定することで置換前文字列に一致するすべての文字列を置換できる。dオプションを指定することで、指定した条件の行を削除することができる。
Linuxユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!