Linuxで置換を行う3つの方法【文字列置換コマンドの比較】
こんにちは。
普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
今回は、Linuxについての解説記事です。
本記事の内容
Linuxで置換を行う方法を3つ紹介します。
以下の3つのコマンドの置換機能を比較します。
$ sed $ tr $ bash
結論から言うと、比較結果の一覧は以下の通りです。
コマンド別 置換機能一覧
コマンド | 文字列の置換 | 文字の置換 | 改行の置換 | 処理の速さ | |
sed | ○ | △ | △ | △ | |
tr | ○ | ○ | ○ | ||
bash | △ | △ | △ |
各コマンドでできること/できないことを順に解説します。
sedコマンドで置換する
sedコマンドは文字列の置換に最適なコマンドです。
文字列を置換する構文
文字列を置換する具体例
文字列の置換の例です。WorldをFriendsに置換します。
$ echo "Hello, World!!" | sed -e 's/World/Friends/g'
実行結果は以下の通りです。
[実行結果]
Hello, Friends!!
改行の置換は簡単にできない
このように、文字列の置換に便利なsedコマンドですが、改行の置換は簡単にできません。
改行に限らず、1つの文字、改行などの特殊文字を置換する場合にはtrコマンドを使うのが一般的です。
また、処理速度もsedに比べてtrの方が早いです。
trコマンドで置換する
trを使えば、改行の置換も簡単です。例えば次の例では、2行からなる文書の改行をTabに置換します。
$ echo 'This is a pen,
and that is a pencil,' | tr '\n' '\t'
実行結果は以下の通りです。
[実行結果]
This is a pen, and that is a pencil.
文字を置換する時に使う構文
具体例と説明の順番が前後してしまいますが、trで文字を置換するときの構文は以下の通りです。
特定の文字を削除する構文
続いて、置換ではなく文字を削除したい場合のやり方を解説します。構文は以下の通りです。
文字を削除する具体例
以下は特定の文字を削除する例です。アルファベットのsを削除します。
$ echo 'This is a pen, and that is a pencil' | tr -d 's'
実行結果は以下の通りです。
[実行結果]
Thi i a pen, and that i a pencil
文字の削除をしたい場合、改行などの特殊文字を処理したいケースがほとんどだと思います。上記のようなアルファベットの削除ならばsedでもできますが、特殊文字の削除であればtrの方が高速かつ便利です。
bashで置換する
bashにも変数に格納された文字列を置換する機能があります。
bashで文字列を置換する構文
bashで文字列を置換する具体例
次の例では、変数helloの文字列にあるpencilをorangeに置換します。
hello=`echo This is a pen, and that is a pencil.` echo ${hello//pencil/orange}
実行結果は以下の通りです。
[実行結果]
This is a pen, and that is a orange.
今回は以上です。参考になりましたら幸いです。
Blog TOP Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ
Linux&Linuxコマンドを勉強したい人向けの記事もくじ
用語解説・技術一般
"UNIXとLINUX"の違いについて解説します
CUIとGUIの違い・特徴について解説します
サーバリソースを確認するコマンドの使い方
【Linux】CPU使用率を確認する3つの方法を解説します
【Linux】topコマンドで,CPU消費の原因を特定する方法
【Linux】ps実行時に-efオプションを付ける理由について
【Linux】メモリ使用率を確認する|容量・空きの確認も
【Linux】ディスク容量を確認する|ディスク容量監視も
ファイル操作に関するコマンドの使い方
【Linux】ファイルの行数をカウントする方法を解説
【Linux】文字コード変換ならiconvコマンド1択です
【Linux】/dev/nullを、エンジニアが使う2つの目的
【Linux】findのexecオプションの使い方とその注意点
【Linux】findの結果から圧縮ファイルを作るコマンド
【Linux】hostsの場所はどこ?→/etc/hostsにあります
【Linux】touchコマンドで,時刻更新&空ファイル作成
Linux管理者用コマンドの使い方
【Linux】再起動コマンド(shutdown)の使い方と注意点
よく使う便利なコマンドの使い方
【Linux】改行なしでechoコマンドを使う時の -nオプション
【Linux】sleepコマンドの使用例と注意点について解説する
【Linux】rmコマンドでディレクトリを削除する方法を解説
【Linux】ファイルを削除するコマンド2選【rm以外もあり】
【Linux】awkの区切り文字を指定する,-Fオプションを解説
【Linux】sedで文字列の置換をするeオプションを解説する
【Linux】dateコマンドのフォーマットとその便利な使い方
【Linux】大文字から小文字に変換する方法【小文字から大文字も】
シェルの便利機能
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。 ITエンジニアに強いおすすめの転職サイト・転職エージェント3選 転職成功には強くてニューゲームが条件。どうやって実現する?