2015年6月7日日曜日

awk & pasteでデータファイル列を統合

1列目と2列目を1に書き出す
awk '{print $1,$2}' ファイル名>書き出し先1
5列目を2に書き出す
awk '{print $5}' ファイル名>書き出し先2

書き出し先1と2を1つのファイルに統合
paste 書き出し先1 書き出し先2 >書き出し先3

すごい便利で、
今までエクセルでちょこまかやってたのが馬鹿みたいだ

2015年6月3日水曜日

grep/awkでファイルの編集

既存のテキストファイルから、
このフレーズが入っている行だけを抜き出したい!というときに。

*grep フレーズ ファイル名 > 書き出すファイル名


awk実行ファイルがあって、それをファイルにかませて新しいファイルに書き出す
*awk -f ***.awk  ファイル名 > 書き出すファイル名


AWKもろもろ 
*/フレーズ/ {print $0"書き足す文字列"}
  =>フレーズの含まれる行全体($0)と、書き足す文字列が表示される
*/フレーズ/ {print $4"書き足す文字列"}  
  =>フレーズの含まれる行の4つ目の単語($4)と、書き足す文字列が表示される
*print " "$0
      =>" "でスペースを足せる
*正規表現
 ・"." =>任意の一文字(ワイルドカードてきな)
 ・^  =>行頭
 ・[abcd]はa,b,c,dの任意の一文字
*FS: field separator, NR: number of rows
   NR % 2 == 0 => NRを2で割った余りが0なら=偶数行なら
*組み込み関数
 ・gsub(r,s,t) => 文字列tの中でrに適合するもの全てをsで置換し、置換数を返す
 ・substr(s,p,n) => sのp番目から始まる長さnの部分文字列を返す
*演算子
 ・|| => OR
 ・&& => AND   

ref: http://chianti.ucsd.edu/~rsaito/ENTRY1/WEB_RS3/PDF/JPN/Texts/AWK1.pdf

2015年3月27日金曜日

エラーセルを空白に置き換える

エクセルでデータ点を計算して、gnuplotでプロットする際、
計算結果がエラー、すなわち#NUMになったとき、
そのままデータファイルを作るとgnuplotでエラーになる。

[対応方法]
数式を書き直す。
=IF(ISERROR(もとの数式),"",もとの数式)
にして計算し直すだけ。

計算するセルの行が大量にある場合は、
最初の1行を書き換えて、選択->右下のプラス印をダブルクリック、
で全行自動計算してくれる。

2015年3月17日火曜日

グラフとグラフの間の領域を塗りつぶす


  • gnuplot
  • illustrator
gnuplot
  set style data lines
  plot "XX.dat" u 1:2, '' u 1:3 with filledcurves below
  =>うまくいかない

illustrator
  閉曲線を作る(グラフ端を閉じる)
  選択ツールで領域を選択
  オブジェクト->ライブペイント->結合->ライブペイントツール
     ->領域をクリック->色を選択

 それでもうまくいかない場合は、新規レイヤーを導入の上で、ペンツールで自分で曲線をなぞって別個閉曲線を作り、塗りつぶす。あるいは隙間ツールなども活用できるかも。

 余談:☆マークを図中にプロットする
    長方形ツール->スターツール ですぐにできる
    場所はあらかじめgnuplotでプロットしておく
    e.g., set label 1 point at 0,0.05\ replot