#include #include #include #include "nr.h" #include "nrutil.h" #include "nrutil.c" char *pname; void help(void); main(int argc, char** argv) { long N,header = 0,k; int i; char stemp[256]; FILE *fp1; pname = argv[0]; for (i = 1; i < argc && *argv[i] == '-'; i++) { switch(argv[i][1]) { case 'l': /* set start */ header = atol(argv[++i]); if(header < 0) header = 0; break; case 'h': /* print usage information and quit */ default: help(); exit(1); } } fprintf(stderr,"--- Header part (the number of lines: %d) --->\n",header); if((fp1 = fopen(argv[argc-1],"r")) == NULL){ fprintf(stderr,"Input file, %s, not found!\n",argv[argc-1]); return 0; } N = 1; while(fgets(stemp, sizeof stemp, fp1) != NULL){ if(N++ <= header){ fprintf(stderr,"%s",stemp); }else{ fprintf(stdout,"%s",stemp); } if(N == header + 1) fprintf(stderr,"<---- End of the header ---\n"); } return 1; } static char *help_strings[] = { "使用法: %s [OPTIONS ...] 入力ファイル名\n", "設定できるOPTION:", " -l n 最初の n 行を除く部分を標準出力に出力", " -h ヘルプ", " 例)hcut -l 2 file.dat > output.dat", " ・・・・・ 最初の2行を除いた部分がoutput.datに保存される", NULL }; void help(void) { int i; (void)fprintf(stderr, help_strings[0], pname); for (i = 1; help_strings[i] != NULL; i++) (void)fprintf(stderr, "%s\n", help_strings[i]); }