* プログラミングのためのTIPS [#uf7699ac] よく忘れるチョイネタは、しっかりとメモしておこう。 #contents ** Fortran [#b5e5c4ce] *** unformattedなsequentialの入出力 [#r9d30534] - 衝撃の事実! unformattedでsequential なアクセスの場合、データのカタマリごとにアクセスが行われる。~ 要は、カタマリの間には8バイトのスペース(?)が入って、一回のアクセスがカタマリの大きさに対してどうであろうと、次のアクセスは次のカタマリに行っちゃう、ということだ。~ たぶん、いまさら気づいているのが遅いんだろうけど、今までDirect Accessが多かったからしかたないのだ。 *** formattedなsequentialの入出力 [#h0b54c6e] - いまさらでいうと、formattedの自由書式(*)のとき、入力は,(カンマ)も区切り文字として認識するみたいだ。知らなかった(恥)。 *** iargc() [#pe2d5080] 引数の数。 if (iargc().ne.3) then write(6,*) 'Usage: xxxxxx' stop end とか入れておくと、すっかり忘れたプログラムが何をするものか思い出されやすい。 ** Shell (sh,csh,tcsh) [#rd9ecdac] *** 互換しない組み込み関数 [#b946efe9] shではexport, cshではsetenv。 *** 変数名に変数は使えない?? [#t18bd1bc] ** awk [#mb29cab0] *** 書式(printf) [#k6e7422f] awk '{SUM=SUM+$1}END{printf("%f\n",SUM/NR)}' list echo 1 | awk '{printf("%2.2i\n",$1+1)}' *** 正規表現 [#cf680f28] - ファイル名:FILENAME - 行:NR - フィールド数:NF - フィールド全部:$0 ** sed [#a63fe483] *** 置換 [#e19d699a] sed -e s/"\/"/" "/g sample.txt --> 全ての/ (スラッシュ)を (空白)に置換。