「シェル操作課題」をやってみたよ

シェル操作課題 (cut, sort, uniq などで集計を行う) 設問編 - Yamashiro0217の日記
の問題をやってみたのです。

cat,パイプ,sort,cut,uniq,wc,sed,perl,awk,grep,head,tail,date,and so on

とのことなのでまあ、知ってる限りというか。Perlとかawk知らんのだけど。
環境:RedHat Enterprise Linux 5 / Ubuntu 12.04 LTS

Q1

$ cat aaa.txt
server1,1343363124,30,/video.php
server2,1343363110,20,/profile.php
server3,1343363115,7,/login.php
server1,1343363105,8,/profile.php
server2,1343363205,35,/profile.php
server2,1343363110,20,/profile.php
server3,1343363205,30,/login.php
server4,1343363225,12,/video.php
server1,1343363265,7,/video.php

Q2

$ cat aaa.txt | cut -d ',' -f 1,4
server1,/video.php
server2,/profile.php
server3,/login.php
server1,/profile.php
server2,/profile.php
server2,/profile.php
server3,/login.php
server4,/video.php
server1,/video.php

Q3

$ cat aaa.txt | grep 'server4'
server4,1343363225,12,/video.php


追記:
ん、cat必要ないな。

$ grep 'server4' aaa.txt
server4,1343363225,12,/video.php

Q4

$ cat aaa.txt | wc -l
9

Q5

調べないとわかんない……


追記:
sortってカラム指定できるのかー。知らなかった。

cat aaa.txt | sort -k 3 | head -n 5
server1,1343363105,8,/profile.php
server1,1343363124,30,/video.php
server1,1343363265,7,/video.php
server2,1343363110,20,/profile.php
server2,1343363110,20,/profile.php

しかしsort --helpしてもいろんなサイト見ても、-kの説明がなに言ってるのか意味がわからない。
でも想定期待結果みたいにならない。よくわからん。

Q6

$ cat aaa.txt | cut -d ',' -f 1,3 | sort | uniq | wc -l
8

Q7

$ cat aaa.txt | cut -d ',' -f 3 | sort | uniq | wc -l
6

Q8

調べないとわかんない……

Q9

調べないとわかんない……

Q10

調べないとわかんない……


全然だめだw awkレベルが低いからなー……
後でちゃんと調べて全部答えてみる。てか合ってんのかなこれ?


追記:
めんどいからやめた。