Entries

Linuxコマンドでの文字列置換について

やっぱり全置換となるとこういうのしかないのかな。


詳細は以下から...

3GBくらいあるテキストファイルを置換しようと思ったんですけど、viで開こうとしてもかなり時間がかかるから、ファイルを開かずに置換する方法ってないのか調べていたけど、今のところ見つけられなかったorz


置換して表示とか。teeかなにかでそれをファイルに書き出してやればいいのかもしれないな。


と思ってやってみたら出来た!けど、trコマンドだと、例えば


<?php
phpinfo();
?>


info.phpってファイルに対して「tr php java < info.php」ってコマンド打つと以下のような出力になります。


<?vav
vavinfo();
?>


なんでだろう・・・よくわからないけど、とりあえず、回避策としてsedコマンドを使うようにしました。


sed -e 's/php/java/g' < info.php


これで、


<?java
javainfo();
?>


と、意図した結果となりました。後はこれをteeコマンドで「sed -e 's/php/java/g' < info.php |tee new.php」みたいにしてやれば出力結果をファイルに格納してくれるとういうこと。これで解決だ!!(いいのか?

■関連してるかも
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://pgmemo.blog116.fc2.com/tb.php/10-f35b2324

0件のトラックバック

1件のコメント

[C8]

突然失礼いたします。
自分もtrで引っかかってググってここにたどりつきました。
trの文字置換は単語単位ではなく、どうやら一つの一つの文字単位で置換してるようです。
つまり、
phpをjavaで変換かけると
「p」→「j」
「h」→「a」
「p」→「v」
となり、「p」は結果的に「v」で置換されることにより
「php」は「vav」になると思われます。
また、この場合「p」と「h」を使用している文字全てが置き換わることになりますので、注意が必要かと思います。
  • 2007-12-27
  • 通りがかりのものです
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

最近の記事

ブロとも申請フォーム

この人とブロともになる

ブログ内検索


By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

Amazonで検索



JAVA関連の書籍