- ベストアンサー
edの使い方
同一ディレクトリ内にある複数のファイル(仮に1.txt, 2.txtとします)に書かれている内容から、abcという文字列をxyzという文字列に一括で置換したいです。UNIX環境なのですが、ラインエディタを使うとするとどのようにすればよいか教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>awkを勉強する前にもっと簡単だと思われるedを勉強しようと思いました。 正規表現も微妙に違うし、edはエディタなのでやる意味はあるのか 疑問ですけどまあ。 edにファイルを読み込んだとして、 1,$s/abc/xyz/g というコマンドを実行すればお望みの置換ができます。 書き出すのが w、終了がqですからこれを組み合わせた上で シェルスクリプトで実行させるようにすると #!/bin/sh for i in *.txt; do ed $i<<EOS 1,\$s/abc/xyz/g . w q EOS done こんな感じになります。 edコマンドの$をシェルに解釈させないために \ で エスケープしていることに注意してください。
その他の回答 (2)
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
回答No.2
> abcという文字列をxyzという文字列に一括で置換 何をしたいのかがイマイチ不明ですが・・・ 1.txt, 2.txt・・・というファイルの文字列を変換しないらな sed を御利用されるのが簡単ではないでしょうか? プログラムが苦にならないなら AWK, Perl でできます。
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
edでなきゃいけないんですか?
質問者
補足
awkを勉強する前にもっと簡単だと思われるedを勉強しようと思いました。しかしedのmanを見ても今いち使い方がわからなかったもので。。 というわけで、edの手順を教えて頂けると大変助かります。
お礼
出来ました。勉強になりました。有り難うございます。