awk script 空欄補充問題
# ファイル内容表示
処理前データ | | 処理後データ
|
---|
信子は女子大学にいた時から、才媛の名声を担っていた。
彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
| → |
信子は女子大学にいた時から、才媛の名声を担っていた。
彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
|
---|
{ # ファイルのすべての行に対して 始め
print $0 # 読み込んだ行の内容を出力する |
} # 終わり
# 行番号付きファイル内容表示
処理前データ | | 処理後データ
|
---|
信子は女子大学にいた時から、才媛の名声を担っていた。
彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
| → |
1 信子は女子大学にいた時から、才媛の名声を担っていた。
2 彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
3 中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
4 が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
5 そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
|
---|
{
1 2,3
4
問1 次の語群から、1〜4に埋める語句を選びなさい。
NR | Number of Record その時点の行番号がセットされているシステム変数(小文字はダメよ)
|
---|
} |
|
---|
print |
|
---|
$0 |
|
---|
答え合わせ
# 書式付行番号 付きファイル内容表示
処理前データ | | 処理後データ
|
---|
信子は女子大学にいた時から、才媛の名声を担っていた。
彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
| → |
1 信子は女子大学にいた時から、才媛の名声を担っていた。
2 彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。
3 中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。
4 が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。
5 そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
|
---|
{
printf"5678",NR,$0;
}
問2 次の語群から、5〜8に埋める語句を選びなさい。
%s | 文字列が入る
|
---|
\t | タブコード
|
---|
\n | 改行コード
|
---|
%4d | 4桁の整数が右詰で入る
|
---|
答え合わせ
# 「秋」 に行番号をつけて表示
処理前データ | | 処理後データ
|
---|
| → |
秋
一
1 信子は女子大学にいた時から、才媛の名声を担っていた。彼女が早晩作家として文壇に打って出る事は、殆誰も疑わなかった。中には彼女が在学中、既に三百何枚かの自叙伝体小説を書き上げたなどと吹聴して歩くものもあった。が、学校を卒業して見ると、まだ女学校も出ていない妹の照子と彼女とを抱えて、後家を立て通して来た母の手前も、そうは我儘を云われない、複雑な事情もないではなかった。そこで彼女は創作を始める前に、まず世間の習慣通り、縁談からきめてかかるべく余儀なくされた。
2 彼女には俊吉と云う従兄があった。彼は当時まだ大学の文科に籍を置いていたが、やはり将来は作家仲間に身を投ずる意志があるらしかった。信子はこの従兄の大学生と、昔から親しく往来していた。それが互に文学と云う共通の話題が出来てからは、愈親しみが増したようであった。唯、彼は信子と違って、当世流行のトルストイズムなどには一向敬意を表さなかった。そうして始終フランス仕込みの皮肉や警句ばかり並べていた。こう云う俊吉の冷笑的な態度は、時々万事真面目な信子を怒らせてしまう事があった。が、彼女は怒りながらも、俊吉の皮肉や警句の中に、何か軽蔑出来ないものを感じない訳には行かなかった。
|
---|
{
if($09/10 /{
printf"%4d\t%s\n",11,$0;
12
}
問3 次の語群から、9〜12に埋める語句を選びなさい。
} |
|
---|
!~ | 「~」は右辺中に左辺文字列が含まれる場合に真の値を取る。「!」はその否定。
|
---|
++c | 1増加した変数cの値
|
---|
^ | 正規表現(/ /でくくられている部分)で、行頭を表すメタ文字
|
---|
答え合わせ
# 茶筅の解析データを使って、語彙の頻度を出力
処理前データ | | 処理後データ
|
---|
| → |
62 |
| 9 | 間
| 1 | 上り
| 1 | 多少
| 1 | 踏む
| 1 | 起す
| 1 | 人通り
| 1 | 仕込み
| 4 | 待つ
| 13 | なる
| 14 | だけ
| 3 | 照
| 2 | わ
| 8 | かつ
| 2 | 静
| 1 | わざと
| 5 | 眺める
| 2 | 間もなく
| 3 | 見せる
| 1 | と同時に
|
|
---|
{
13;
}
END{
14(i 15 16){
printf"%4d\t%s\n",d[i],i;
}
}
問4 次の語群から、13〜16に埋める語句を選びなさい。
d | 配列d
|
---|
d[$2]++ | 配列d[添え字$2]の値を1増加 語の基本形の数を勘定する
|
---|
in | のなかの
|
---|
for | 繰り返し
|
---|
答え合わせ
# 1〜100 の合計
処理前データ | | 処理後データ
|
---|
nothing
| → |
Total= 5050
|
---|
BEGIN{
s=0;
for(17;18;19){
20;
}
print "Total=",s;
}
問5 次の語群から、17〜20に埋める語句を選びなさい。
i++ | 変数iを1増加
|
---|
i<=100 | 変数iが100以内の間
|
---|
i=1 | 変数iが1から
|
---|
s=s+i | 変数sにiの値を足し込む
|
---|
答え合わせ
# 1〜100 の奇数の合計と偶数の合計
処理前データ | | 処理後データ
|
---|
nothing
| → |
奇数の合計= 2500
偶数の合計= 2550
|
---|
BEGIN{
k=0;
g=0;
for(i=1;i<=100;21){
k=k+i;
g=g+i22;
}
print "23の合計=",k;
print "24の合計=",g;
}
問6 次の語群から、21〜24に埋める語句を選びなさい。
答え合わせ
# サイコロを6000回振ったときの出目の頻度
処理前データ | | 処理後データ
|
---|
nothing
| → |
1= 983
2= 1030
3= 1006
4= 1017
5= 1009
6= 955
|
---|
BEGIN{
for(i=1;i<=25;i++){
26;
}
for(i=1;i<=6000;i++){
r=int(27*6)+1;
28;
}
for(i=1;i<=6;i++){
printf"%4d=%8d\n",i,d[i];
}
}
問7 次の語群から、25〜28に埋める語句を選びなさい。
6 |
|
---|
d[r]++ |
|
---|
rand() | 0から1未満の乱数を発生する
|
---|
d[i]=0 | 初期化
|
---|
答え合わせ
# 縦横計算
処理前データ | | 処理後データ
|
---|
| 国語 | 数学 | 社会 | 理科 | 英語
|
---|
小泉純一郎 | 35 | 61 | 84 | 61 | 90
|
---|
藤井治芳 | 40 | 30 | 90 | 52 | 66
|
---|
青木幹雄 | 50 | 37 | 31 | 36 | 35
|
---|
飯島勲 | 70 | 69 | 55 | 90 | 43
|
---|
片桐幸雄 | 30 | 94 | 55 | 84 | 59
|
---|
| → |
| 国語 | 数学 | 社会 | 理科 | 英語 | Total
|
---|
小泉純一郎 | 35 | 61 | 84 | 61 | 90 | 331
|
---|
藤井治芳 | 40 | 30 | 90 | 52 | 66 | 278
|
---|
青木幹雄 | 50 | 37 | 31 | 36 | 35 | 189
|
---|
飯島勲 | 70 | 69 | 55 | 90 | 43 | 327
|
---|
片桐幸雄 | 30 | 94 | 55 | 84 | 59 | 322
|
---|
Total | 225 | 291 | 315 | 323 | 293
|
---|
|
---|
# データはtabで区切られていること
# 1行目と各行の1列目は項目名
BEGIN{
FS="29"
}
{
for(x=1;x<=NF;x++){
30;
if(NR>0){sx[NR]=sx[NR]+$x}
if(x>0 && NR>0){sy[x]=sy[x]+$x}
}
}
END{
y=1;
for(x=1;x<=NF;x++){
printf d[x,y] "\t";
}
31;
for(y=2;y<=NR;y++){
for(x=1;x<=NF;x++){
printf d[x,y] "\t";
}
print sx[y];
}
printf"Total";
for(x=1;x<=NF;x++){
32;
}
print"";
}
問8 次の語群から、29〜32に埋める語句を選びなさい。
print "Total" | Totalと出力
|
---|
\t | タブコード
|
---|
d[x,NR]=$x | 2次元配列d[x,NR]にx番目の欄の値を代入
|
---|
printf sy[x] "\t" | 配列sy[x]の値の後ろにタブコードをつけて出力(改行しないで)
|
---|
答え合わせ
終了です。
mailto: nonami@cc.osaka-kyoiku.ac.jp
# 行番号付きファイル内容表示
{
print NR,$0
}
戻る
# 書式付行番号 付きファイル内容表示
{
printf"%4d\t%s\n",NR,$0;
}
戻る
# 「秋」 に行番号をつけて表示
{
if($0!~/^ /{
printf"%4d\t%s\n",++c,$0;
}
}
戻る
# 茶筅の解析データを使って、語彙の頻度を出力
{
d[$2]++;
}
END{
for(i in d){
printf"%4d\t%s\n",d[i],i;
}
}
戻る
# 1〜100 の合計
BEGIN{
s=0;
for(i=1;i<=100;i++){
s=s+i;
}
print "Total=",s;
}
戻る
# 1〜100 の奇数の合計と偶数の合計
BEGIN{
k=0;
g=0;
for(i=1;i<=100;i=i+2){
k=k+i;
g=g+i+1;
}
print "奇数の合計=",k;
print "偶数の合計=",g;
}
戻る
# サイコロを6000回振ったときの出目の頻度
BEGIN{
for(i=1;1<=6;i++){
d[i]=0;
}
for(i=1;1<=6000;i++){
r=int(rand()*6)+1;
d[r}++;
}
for(i=1;1<=6;i++){
printf"%4d=%8d\n",i,d[i];
}
}
戻る
# 縦横計算
# データはtabで区切られていること
# 1行目と各行の1列目は項目名
BEGIN{
FS="\t"
}
{
for(x=1;x<=NF;x++){
d[x,NR]=$x;
if(NR>1){sx[NR]=sx[NR]+$x}
if(x>1 && NR>1){sy[x]=sy[x]+$x}
}
}
END{
y=1;
for(x=1;x<=NF;x++){
printf d[x,y] "\t";
}
print "Total";
for(y=2;y<=NR;y++){
for(x=1;x<=NF;x++){
printf d[x,y] "\t";
}
print sx[y];
}
printf"Total";
for(x=1;x<=NF;x++){
printf sy[x] "\t";
}
}
戻る