/home/3989646672/kadai5data
上記のディレクトリ以下すべてを、今いるカレント・ディレクトリに コピーする方法は以下。
% cp -r /home/3989646672/kadai5data . (最後のドットに注意)
ファイルの説明:
郵便番号が7桁になってから、大口の組織にはユニークに定まる郵便番号が 割り当てられるようになった。これは、申請があると割り当てられたり、廃止 されるので、逐次更新されている。kadai5dataの下には最近追加された大口 組織の郵便番号を調べたデータが3つ入っている。これは、3人の学生に調査を 依頼したために3つになった。しかし、3人の学生が調べた期間は微妙に重複を 含むので、まったく同じデータが一部重複して入っている可能性がある。 (重複しているデータは1行全く同じと考えてよい)
kadai5data/com1.txt kadai5data/com2.txt kadai5data/com3.txt各データのフォーマットは同一で、1行に1組織のデータが入っている。各行の のデータは以下の順序で入っている。各項目の区切りはタブである。
組織の読み 組織名 都道府県名 市名 新郵便番号 旧郵便番号
例えば、以下のようなデータが入っている。
コパルデンシ コパル電子 埼玉県 入間市 3588765 358 ス-パ-バツグ スーパーバック 埼玉県 入間市 3588710 358 カミフクオカシヤクシヨ 上福岡市役所 埼玉県 上福岡市 3568501 356 シンニホンムセン 新日本無線 埼玉県 上福岡市 5368510 356以下のコマンドで、これらのファイルを眺めてみよ。
% cat com1.txt
解答例1: ソートしたファイルを見るだけ
% export LC_ALL=C
% sort < com1.txt | more (または % sort com1.txt | more)
注意:export LC_ALL=Cを行うと、ファイルを見るときに文字化けする。もう一つ別にターミナル画面を立ち上げてファイルを見てください。それか、export LC_ALL=Cを行わず、sortコマンドを使うとき、先頭につけて、 LC_ALL=C sort とします。日本語のソートにLC_ALL=Cが必要になります。
LC_ALLは環境変数、詳しく知りたい人はここをクリック。 解答例2: ソートしたファイル(com1.sort)を作る% sort < com1.txt > com1.sort (または % sort com1.txt > com1.sort)
(com1.sortを上から順番に見ていく==> % more com1.sort)
解答例: % sort < com1.txt | cut -f2 | more
解答例1: % cat com1.txt com2.txt com3.txt | sort | uniq | more
解答例2: % sort com1.txt com2.txt com3.txt | uniq | more
解答例: % cat com1.txt com2.txt com3.txt | sort | uniq -d | more
では、以下の課題を自分の力で解いて下さい。コマンド解説にあるコマンドと パイプ、リダイレクションのみで処理すること(perlやawkを知っていても 使用しないこと)。
結果の例:
あいう商会 いうえ商会 かきく社 ・・・
結果の例:
1056666 あいう商会 1057777 かかか会社 ・・・
結果の例:
5 熊本県 8 鹿児島県 ・・・
(1) 「コンピュータリテラシ課題6報告書」、所属、学籍番号、名前、日付 (ファイルの一番上) (2) 各5行のデータに課題番号が分かるように課題番号を付け加える。 (3) 各5行のデータをどのように作成したかを、打ち込んだコマンドを書け。 (4) 課題6-3で打ち込んだコマンドと、その結果(件数)を課題6-3の 解と分かるように書け。レポート例:
情報 課題6 UNIX シェル コマンド 報告書 gXXXXXX、情報太郎 日付 課題6-2: % xxxx | yyy | zzz > xyz.xxx あいう商会 いうえ商会 かきく会社 ・・・ 課題6-3: % xx yy zz | xx2 | zzyy 32件 課題6-4: % yyz | dkfjd | dkj > ddd.dd % dkfjd | dkfjd | eir > eeee.ee % dkfj ddd.dd eee.ee | eeee -x -y > xxx.yyy 1056666 あいう商会 1057777 かかか会社 ・・・ 課題6-5: % xxx2 | yyy -xxx | dkfjd > dkfjd.dkfjd 5 熊本県 8 鹿児島県 ・・・ 以上
形式:cat x y z ... 解説:ファイルx, y, z,...を左から順に標準出力に(つなげて)出力する。 例: % cat a.txt 1 3 5 % cat b.txt 2 4 6 % cat a.txt b.txt 1 3 5 2 4 6コマンド一覧にもどる
形式: more x 解説: ファイルxの内容を標準出力に出力するが、ウィンドウの大きさに合わせて 表示の一時停止をする。スペースを押すと、次が表示される。'q'で終了。 また、標準入力からも入れることができる。以下の2行のコマンドは等価。 % more x % cat x | moreコマンド一覧にもどる
形式:sort x y z ... 解説:ファイルx y z ...をまとめてソートし、標準出力に出力する。。ソートとは、 ファイル中の各行をアルファベット順(日本語の場合はあいうえお順)に 並べなおすことである。入力ファイルは標準入力からでもよい。 例: % cat a.txt え a う c あ b % cat b.txt い e お d % sort a.txt b.txt (または % cat a.txt b.txt | sort ) あ b い e う c え a お d 形式:sort -k n x y ... 解説:ファイルx, y, ...をソートするときに、'n-1'の数だけ項目をスキップして 各行を比較する。 例: % cat a.txt え a う c あ b % cat b.txt い e お d % sort -k 2 a.txt b.txt (または、% cat a.txt b.txt | sort +1 ) え a あ b う c お d い e ******* 漢字やひらがな/カタカナなどが含まれる日本語テキストは、エンコーディングの関係でうまくソートできない。その場合は環境変数 LC_ALL=C または LANG=ja_JP.UTF-8 を設定する。 例 cat foo.txt | LC_ALL=C sortコマンド一覧にもどる
形式: uniq x 解説:ファイルxから、隣接する重複行を削除し標準出力に出力する。 (重複する行が複数行続くときに、1回しか出力されない) ファイルを省略すると、標準入力からの入力になる。 (注意:行は完全に一致しているものだけ削除される) 例:ファイルの中の重複した行を削除する。 % cat a.txt あ い う え % cat b.txt い う え お % sort a.txt b.txt | uniq あ い う え お 形式: uniq -d x 解説: ファイルxの重複した行だけ標準出力に出力。 xを省略すると、標準入力が入力となる。 例:ファイルの中の重複した行を削除する。 % cat a.txt あ い う え % cat b.txt い う え お % sort a.txt b.txt | uniq -d い う え 形式: uniq -c x 解説: 'uniq x'の出力の各行の先頭に重複の回数を付けて出力する。 例: % cat a.txt あ い う え % cat b.txt い う え お % sort a.txt b.txt | uniq -c 1 あ 2 い 2 う 2 え 1 おコマンド一覧にもどる
形式: cut -fn1,n2,... x 解説: ファイルxの各行から指定されたフィールドを取り出す。n1,n2...は数字を コンマで区切ったもので、この数字のフィールドを取り出す。フィールドは オプションを指定しなければ、タブで区切られた文字列が左から、1,2,3,... という番号となる。 例: % cat a.txt あ 100 abc い 200 def う 300 ghi え 400 jkl お 500 mno % cut -f2 a.txt 100 200 300 400 500 % cat a.txt | cut -f1,3 あ abc い def う ghi え jkl お mnoコマンド一覧にもどる
形式: wc x 解説:ファイルxの行数、単語数、文字数を出力する。行数は改行コードの数、 単語は(半角)スペース、タブ、改行コードで挟まれた文字列のこと。 文字数は、スペース、タブ、改行コード数を含む(すなわち、ファイルの バイト数に等しい)。日本語の場合は1文字2バイトなので、文字数 とは解釈できない。xが省略されると、標準入力から入力されたファイルに 対して処理する。 例: % cat a.txt あ い う え % cat a.txt | wc 4 4 12 (左から、4行、4単語、12バイトを意味する。各行につき、日本語1文字 2バイトと改行コード1バイト、合わせて3バイトである。4行あるので、 3×4=12バイトとなる。日本語の場合は最初の行数しか意味がないと思ってよい。)コマンド一覧にもどる
形式: paste x y z ... 解説:ファイルx,y,z,...の対応する各行をマージして1行にして出力する。 ファイル名の代わりに'-'を書くと、標準入力からの入力になる。 例: % cat a.txt あ い う え % cat b.txt い う え お % paste a.txt b.txt あ い い う う え え おコマンド一覧にもどる
形式: head x y z ... 解説:ファイルx,y,z...の各先頭10行を標準出力に出力する。 ファイル名を省略すると、標準入力から読み込んだものの先頭10行を出力する。 形式: head -n x y z ... 解説:ファイルx,y,z,...の各先頭n行を標準出力に出力する。 例: % cat a.txt あ い う え お % cat b.txt か き く け こ % head -3 a.txt あ い う % head -2 a.txt b.txt ==> a.txt <== あ い ==> b.txt <== か きコマンド一覧にもどる