標題のテーマ、今までリダイレクト使ってまどろっこしいことしていた。 # 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 これをどういう時に使いたいかというと、通常の
Linux シェル (sh) で、文字列から任意の文字を取り出す方法としては、外部コマンド sed を利用する方法があります。 方法としては、sed コマンドの -e オプションを使って正規表現を使用して、必要な文字列に置き換えるという方法をとります。sed に渡す文字列は echo コマンドを使って渡します。 DATA1="IP Address: 192.168.0.1/255.255.255.0 RETVAL=`echo "$DATA1" | sed -e "s/^IP Address:[ \t]\+\([0-9\.]\+\)\/[0-9\.]\+$/\1/g"` このようにすることで、DATA1 から "192.168.0.1" の部分を切り取って RETVAL 変数に取得することが可能になります。 他にもたとえば、次のような抽出が、sed を使ってできると思います。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く