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