→ パイプでフィルタに加工したいデータを受け渡し、目的とする文字列を抽出するフィルタリング処理を行う。 パイプを使用して不必要な文字列を消去する、または適切な位置に文字列を付加する、といったフィルタを挟み込むことで目的とするデータを抽出する。 また、フィルタをパイプで複数連結することで、より複雑なフィルタリング処理を実現することができる。 sed コマンドを使用したフィルタリング 文字列 A を文字列 B に置換する sed コマンドはさまざまな機能を持ったコマンドだが、主には文字列の置換処理に利用されるコマンドである。置換処理を行う場合には、置換対象と置換後の文字列を指定してコマンドを実行する。置換対象の指定には一部の正規表現を使用することも可能である (一部の正規表現は使用できない。また、sed のバージョン等により使用できる正規表現も異なる)。 各行の最初に一致した文字列のみ置換 →
平素よりYahoo!知恵袋をご利用いただきありがとうございます。 2017年11月30日をもちまして、「知恵ノート」機能の提供を終了いたしました。 これまでご利用いただきました皆様にはご迷惑をおかけすることとなり、誠に申し訳ございません。 長年のご愛顧、心よりお礼申しあげます。 引き続き、Yahoo!知恵袋の「Q&A」機能をご利用ください。 Yahoo!知恵袋トップ 知恵ノートサービス終了のお知らせ プライバシー - 利用規約 - メディアステートメント - ガイドライン - ご意見・ご要望 - ヘルプ・お問い合わせ JASRAC許諾番号:9008249113Y38200 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
Linux等で、ファイルの特定の行に、ある文字列を挿入(追加)したい時のコマンド(sed)サンプルを備忘録的に。 前提 こんなファイルがあります。 $ cat test.txt line1 line2 line3 2行目に挿入 $ sed -e "2i hoge" test.txt line1 hoge line2 line3 2行目直下に挿入 $ sed -e "2a hoge" test.txt line1 line2 hoge line3 "line2"の行前に挿入 ※この辺の正規表現は、要件に応じて適当に変えてー。 $ sed -e "/^line2$/i hoge" test.txt line1 hoge line2 line3 "line2"の行後に挿入 $ sed -e "/^line2$/a hoge" test.txt line1 line2 hoge line3 sed
標題のテーマ、今までリダイレクト使ってまどろっこしいことしていた。 # sed -e "s/AAA/ZZZ/g" INFILE.txt > OUTFILE.txt # cp OUTFILE.txt INFILE.txt つまり、一度OUTFILE.txtに置換内容を吐き出してから、OUTFILE.txtをオリジナルのINFILE.txtに反映、とするやり方。しかし!-iオプションを使えば断然スマートにできることを今さら知る。 # sed -i -e "s/AAA/ZZZ/g" INFILE.txt これだけで、対象ファイルが上書き編集される。これにはちょっと感動。 以下のようにすればバックアップファイルもとってくれる。-iとダブルクォーテーションの間は詰める。 # sed -i".org" -e "s/AAA/ZZZ/g" INFILE.txt これをどういう時に使いたいかというと、通常の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く