主にプログラミングやサーバーの設定などで困った時のメモ
やっぱり全置換となるとこういうのしかないのかな。
詳細は以下から...
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」みたいにしてやれば出力結果をファイルに格納してくれるとういうこと。これで解決だ!!(いいのか?
DB インストール コマンド MySQL 自作ユーティリティ デバッグ フリーソフト SQL パフォーマンス XML scp ftp 暗号化 シェアウェア プログラミング 丸め誤差 浮動小数点 ResultSet Date Timestamp バージョン管理 リストア ダンプ JKL.ParseXML JSON GIGAZINE Eclipse ハッキング 置換 固定小数点 CVS SQL開発環境 SQLRelay textarea form HTML 日付 plugin 命名規則,スクリプティング言語 チューニング メモリ プラグイン, Java Eclipse, iBatis フレームワーク firefox Fedora7 階層構造 Jash XMLSchema Windows Spring PAR ブラウザ FireBug RPM ダウンロード 処理時間 インデックス テーブル定義 コネクションプール
自分もtrで引っかかってググってここにたどりつきました。
trの文字置換は単語単位ではなく、どうやら一つの一つの文字単位で置換してるようです。
つまり、
phpをjavaで変換かけると
「p」→「j」
「h」→「a」
「p」→「v」
となり、「p」は結果的に「v」で置換されることにより
「php」は「vav」になると思われます。
また、この場合「p」と「h」を使用している文字全てが置き換わることになりますので、注意が必要かと思います。