質問
sedとは 「Stream EDitor」の略で、
terminalなどからbashコマンドを用いて
ファイル行の削除、挿入、置換、上書き保存ができます。
複数ファイルに関するファイル行の削除、挿入、置換、上書き保存を手動でやっていては、
時間がもったいなさすぎます。
そこで、bashやzshを利用して、
シェルスクリプトによって自動化する方法をお教えします。
これらは、コンピュータを扱う上で非常に重要なものです。
この記事を読んで、一歩進んだ知識を身につけましょう!
Contents
bashのsedでファイル行の削除、挿入、置換、上書き保存!変数挿入のエラー原因は〇〇かも
そもそもbashとは何か?.bashrcや.bash_profileを使う
bashとは何か?、については、以前解説しました↓
意外とあいまいになりがちだと思うので、ぜひご覧になってみてください。
bashの設定を毎回手で入力するのは面倒ですよね?
例えば、これから先何回も使うような新しい変数を設定したい場合。
毎回それを手で打ち込んでいたのでは、らちがあきません。
そこで、欲しい設定を全て一箇所にまとめて書いておけば、そのファイルを実行するだけで欲しい環境が整うわけです。
.bashrcや.bash_profileは、欲しい設定を全て書いておくためのファイルです。
.bashrcや.bash_profileに関しては、
こちらの記事で詳しく解説しています。
シェルスクリプトを基本の基本から入門
本記事では、
bashのsedでファイル行の削除、挿入、置換、上書き保存
する方法を解説しています。
では、そもそもシェルスクリプトとはなんでしょうか?
シェルスクリプトが使えるようになると、
エンジニアとしての幅が大きく広がります。
シェルスクリプトに関しては、以下の記事で詳しく解説しています。
bashのsedでファイル行の削除、挿入、置換、上書き保存するシェルスクリプト
では、実際に
bashのsedでファイル行の削除、挿入、置換、上書き保存するシェルスクリプト
を見ていきましょう。
・パイプで使う場合の例
1 |
<span class="pln">$ cat </span><span class="pun">./</span><span class="pln">hoge</span><span class="pun">.</span><span class="pln">txt </span><span class="pun">|</span><span class="pln"> sed </span><span class="pun">-</span><span class="pln">e </span><span class="str">'s/xxx/XXX/g'</span> <span class="pun">></span> <span class="pun">./</span><span class="pln">hoge</span><span class="pun">-</span><span class="kwd">new</span><span class="pun">.</span><span class="pln">txt</span> |
ここでいうパイプというのは「|」のことです。
コマンドの出力結果を次のコマンドに引数として受け渡して実行することができます。
・ファイル名を指定して使う場合の例
1 |
<span class="pln">$ sed </span><span class="pun">-</span><span class="pln">e </span><span class="str">'s/xxx/XXX/g'</span> <span class="pun">./</span><span class="pln">hoge</span><span class="pun">.</span><span class="pln">txt </span><span class="pun">></span> <span class="pun">./</span><span class="pln">hoge</span><span class="pun">-</span><span class="kwd">new</span><span class="pun">.</span><span class="pln">txt</span> |
・ファイルを書き換えてしまう例(複数のファイルを指定できる)
1 |
<span class="pln">$ sed </span><span class="pun">-</span><span class="pln">i </span><span class="pun">-</span><span class="pln">e </span><span class="str">'s/xxx/XXX/g'</span> <span class="pun">./</span><span class="pln">hoge</span><span class="pun">.</span><span class="pln">txt </span><span class="pun">./</span><span class="pln">hoge2</span><span class="pun">.</span><span class="pln">txt </span><span class="pun">./</span><span class="pln">hoge3</span><span class="pun">.</span><span class="pln">txt</span> |
いま読むべき記事
本ブログでは、pythonをはじめとしたプログラミングの情報などを、分かりやすく発信しています。
ぜひ、他の記事もご覧になってみてください。
コメント