sed
文字列置換
一行程度の文字列の置換にsedは重すぎる
[sed] コマンドはシェル言語の一部ではなく外部コマンドなので起動が遅い 数百倍遅い
簡単な置換であればシェル言語ネイティブの方法の方が半分で書けて良い
良い書き方(シェル言語ネイティブの方法)
$ ret=${line/from/to}
変数 line に入ってる文字列の "from" を "to" に置換して ret 変数に代入する
# 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、
# sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る
$ ret=$(echo "$line" | sed "s/from/to/")
table:比較
sed (外部コマンド)を使用した場合 シェル言語ネイティブ
ret=$(echo "$line" | sed "s/from/to/") ⇔ ret=${line/from/to}
lineに入ってる文字列をechoで渡す
⇒sedのsコマンドで"from"を"to"に置換し出力
よく使う書き方(参考元:sedでこういう時はどう書く? #Linux - Qiita)
(改行コード)CR+LFをLFにする
$ sed -i -e 's/\r//g' manifest.json
LFにCRを追加してCR+LFにする(よく間違うが、's/\n/\r\n/'では置換出来ないので注意)
$ sed -i -e 's/$/\r/' manifest.json
#Bash_command