投稿

12月, 2017の投稿を表示しています

計算科学に必要なShellによるテキストファイル編集

イメージ
2018/05/18 追記 2019/12/06 追記 どうやらmac上で、sed がうまく動かないという問題があるようです。 なんで僕のは動いていたんだろうか。。どこかで対処してたのかな。 解決法は以下を参照 https://it-ojisan.tokyo/2018/01/22/mac-linux-sed/ https://qiita.com/catfist/items/1156ae0c7875f61417ee 余分なスペースだらけのテキストファイルの表を、表計算ソフトに移植したい時ありませんか。 私は、単結晶X線構造解析や、計算で出した最適化構造の座標ファイルを扱う時に、余分なスペースに困らされることが、よくあります。 これまで私は、1.テキストをワードで開き、2.検索と置換機能を使って連続するスペースをまとめる、という作業をチマチマ行って、テキストファイルを再編集していました(下図)。 元のテキストファイル これを 表計算ソフトに入れると… スペースの所でグチャグチャに。 手でやるよりは断然効率がよいものの、もっと良い方法があるはず、、と悶々とする日々。 最近、shellがすこし使えるようになってきたので、sedコマンドでかんたんにファイルを整形できるようになったので備忘録です。(Macですが、他のOSでもちょっと調べればできるはず。) ______________________ 1. ターミナルを起動し、対象ファイルのあるところまで移動。(ここがわからなければ、ターミナルコマンドのcdコマンドについて検索) 2. ターミナル上で以下を打ち込む。 sed -r 's/ +/ /g' "ファイル名" 例:デスクトップ上においてある、"abc.txt"とよばれるファイルの空白を飛ばす $ cd Desktop $ sed -r 's/ +/ /g' abc.txt これで、ターミナル上に2つ以上のスペースが一つにまとめられた出力が出てくるはずです。.txt などの拡張子は必ず入れましょう。 's/ +/ /g'というところは、正規表現です。 's/A/B/g'であれば、テ