連番で一気にgnuplotグラフを出力
何十個の連番データを一個一個グラフ化する苦行は早々リタイア。
以下、重要ポイント。
#! /bin/csh -f #上記は~/.cshrcを読まずに実行 set a = 1 while ($a <= 30) gnuplot <<EOF #EOF行まで空行を挟まない pl '${a}_1.txt' w l set terminal postscript enhanced font "Helvetica" set output "${a}.eps" replot set term x11 exit EOF @ a ++ end
いやーめちゃ快適になった。
複数のテキストファイル内の文字列を一気に変換
テキストファイル内の文字列を変換する時のメモ。
sedコマンド使って-eで何をするか指示する。
">"で出力指定する時にファイル名を別のものにしないとデータが消えてしまう。
以下は連番でファイルを読んで、ファイル内のWWWWをwwwwに変換する場合。
#! /bin/csh -f #上記は~/.cshrcを読まずに実行する set a = 1 while ($a <= 5) sed -e 's/WWWW/wwww/g' test${a}.txt > test${a}_1.txt @ a ++ end
他のシェルのが良いのでは、と常に思ってるけど。
最初に参考にした先輩のスクリプトがcshでそのままズルズルと使ってる。
一般的なshか上位互換らしいtcshに変えた方がいいんかなー。
make_ndxの追記方法
まさかの後輩から学ぶの巻。
自分で問題解決しようとする能力がある良い後輩ですね!
Gromacsでは何かとグループ選択画面が現れます。
ですが、デフォルトでは単純なものしか選べません。
(protein、SOL、sidechain などなど)
んで、そこそこ慣れるとデフォには無いグループを使いたくなります。
そんな時に使うのがmake_ndxコマンドですが、その使い方は省略。
今回は既にindexファイルがあって、そこに新しく項目を足したい!という話。
私は特に何も考えず毎回新規で作ってました……
でも後輩は大量のindexファイルに後から項目を付け足す必要がありました。
そんな時はとても簡単、-nで追記したいindexファイルを指定するだけ。
$ make_ndx -n index.ndx
分かれば単純だけど使わないと気付かないよね(言い訳)
ついでに、今覚えたMarkdown記法。 unixなどのコマンド系の表示をしたい時は半角4文字空けて書けばそれっぽい。
便利でかっこいいけど、はてな(っていうかブラウザ)上ではタブキー効かないし、不可視の半角が4個入ってるかよく分かんないのが微妙だなあ。
リストから複数の要素を抜きたい
リストから複数の要素を抜くにはどうするか。
remove()では1つの要素しか削除できない。
悩んだ結果、とりあえずforで回してみた。
index = range(1,10) #indexからwithoutを除く without = [2,4,5,8] for w in without: index.remove(int(w)) >>> print index [1, 3, 6, 7, 9]
あんまり効率良くない気がするけど、重い処理じゃなければ問題ないかなあ。