#author("2020-08-16T08:33:53+00:00","default:yusami","yusami") #author("2023-10-08T00:31:29+00:00","default:hotate","hotate") #contents &tag(sed,コマンド,テキスト処理); * 情報 [#s61df226] - [[【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita>https://qiita.com/ko1nksm/items/b4b342f77f6d3ee1a0a9]] ログファイルのような複数行のテキストデータ(テキストファイル)を正規表現で置換するなら、sed コマンドの方が適しています。 - [[sedでこういう時はどう書く? - Qiita>https://qiita.com/hirohiro77/items/7fe2f68781c41777e507]] '#'で始まるコメント行を削除する。 - [[sed | テキストの置換,正規表現のメタ文字や後方参照の方法など>http://bi.biopapyrus.net/linux/sed.html]] 各行に出現するのすべての「TAG」を「*」に置換。 sed 's/TAG/*/g' input.fa - [[sed コマンド | コマンドの使い方(Linux) | hydroculのメモ>https://hydrocul.github.io/wiki/commands/sed.html]] 文字列を全置換したり、行単位で抽出したり、削除したり、いろいろなテキスト処理のできるコマンド。 処理内容はコマンドラインパラメータで指定して、非対話的に一括処理できる。 - [[sedで/の置換をエスケープなしでやりたい - 256bitの殺人メニュー>http://d.hatena.ne.jp/akuwano/20120411/1334114116]] よく知られてないのかはわかりませんが、実は、s/の/部分の記号はなんでもいいのです。 ** [[macOS]] [#e9265b9b] - [[Macの全置換で sed: RE error: illegal byte sequence が出たら - Qiita>https://qiita.com/pman-kenji/items/2749d78d407fe4015872]] $ export LANG=C を流せば解決。 - [[sedでマッチする複数行のうちはじめの行だけ置換する方法 - grep Tips *>https://www.greptips.com/posts/1235/]] (2018/2/7) MacだとBSD sedが入っているが、先ほどの解法通り0行目から置換対象までと書いても一切マッチしなくなってしまう。 Macの場合、sedは諦めてawkで処理するのもいいかもしれない。 ** 上書き [#fd785b29] - [[sedコマンドでファイルを上書き編集 - OpenGroove>http://open-groove.net/linux-command/sed-edit-files/]] -iオプションを使えば断然スマートにできることを今さら知る。これだけで、対象ファイルが上書き編集される。 - [[Macの(BSD版)sed での上書き保存 - Qiita>http://qiita.com/catfist/items/1156ae0c7875f61417ee]] BSD sedでの上書き保存には、バックアップ用拡張子の指定が必須なのです。 $ sed -i '.bak' 's/aaa/zzz/' hoge.txt # 拡張子'.bak'でバックアップ ** 改行 [#v0911062] - [[sedコマンドで文字列を改行に置換する、しかもスマートに置換する。 - Qiita>http://qiita.com/richmikan@github/items/3c74212b0d8dec9bd00f]] LF=$'\\\x0A' echo "hogehoge\nfoo\nbar" | sed 's/\\n/'"$LF"'/g'