忍者ブログ
日々の研究生活のメモ書きなど
次のようなデータファイルがあるとする。
hoge.dat1 1.1 2.2
2 2.2 3.3
3 3.3 4.4
4 4.4 5.5
5 5.5 6.6
6 6.6 7.7
7 7.7 8.8
8 8.8 9.9
9 9.9 10.10
10 10.10 11.11



これのある行(例えば3行目)だけ表示させたいときは次のように打てばよい

$head -n3 hoge.dat | tail -n1
3 3.3 4.4

headとtailにオプションnを付けると、その引数行までを表示してくれる


さらに出てきた3列の数字からある列だけを取り出したいときは
$head -n3 hoge.dat | tail -n1 | awk '{print $2}'
3.3

今回は2列目のみを表示してみた。


実は同じようなことがawkコマンドだけでもできる・・・・
awkコマンドの内部変数には
NF : 列の数
NR : 行の数
FILENAME : 今読み込んでいるファイルの名前
がある

これを使って
$awk 'NR==3{print $1,$2,$3}' hoge.dat
3 3.3 4.4
$awk 'NR==3{print $2}' hoge.dat
3.3


ただし上の方法とは実行速度がダンチなので、上の方法の方がおすすめ
(awkだと最後までチェックしないと終了しないっぽい)
PR
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞
自己紹介:
#include <stdio.h>
#include "MyProfile.h"

#define TWITTER coffee_pote

#define WISH_LIST
amazonのほしい物リスト
#ifdef RICH_FLAG
// ↑いつも支援いただきありがとうございます m(_ _)m
#endif


int main(void){

printf("\n");
printf("D論・・・? あぁそんな子もいましたね(執筆中)\n");
printf("\n");
printf("猿でもわかるgnuplot を執筆中(こっちの執筆は半年以上何も進んでいない・・・・)\n");
/* 最終更新 2017/07/19 */
return 0;

}
カウンター
ブログ内検索
ツイートするボタン
Flickr

Template "simple02" by Emile*Emilie
忍者ブログ [PR]