Sat Apr 5 17:50:21 JST 2014 (modified: Sun Oct 1 10:50:27 JST 2017)
views: 2423, keywords:セルリアンタワー,シェルリアンタワー,CLI,Linux,Mac,USP友の会,勉強会,シェル芸,シェル芸勉強会 この記事は最終更新日が6年以上前のものです。

【問題集】第10回シェル芸勉強会

他の回の問題はこちら

シェル芸勉強会スライド一覧

環境

Linuxで解答を作ったのでMacな方は次のようにコマンドの読み替えを。

Mac,BSD系 Linux
gdate date
gsed sed
tail -r tac
gtr tr
gfold fold

Q1

次の数字の列を足し算してください。(できる人はなるべく変態的に)

$ echo 2 5 9 8 1 3 7 4
   2 5 9 8 1 3 7 4

Q2

スペースと数字と改行を使って次のようなファイルを作り、書いた数を足し算してください。

$ cat nums 
    1
   
   2 3 
    4 5
    6 7
   
   8 9

Q3

文字数を数えてください。改行記号は数えないでください。

ueda@remote:~$ cat genkou
   筆者は朝、目玉焼きを食べた。
   昼、著者は卵がけごはんを食べた。
   そして夜、著者はマンハッタンの夜景を
   見ながらゆで玉子を食べた。

Q4

次のようなファイルを作り、ファイルの中に三個存在する文字を出力してください。

ueda@remote:~$ cat hoge
   aabbcdabbcccdd

Q5

次のようなファイル、ディレクトリを作ってください。そして、file1, file2, file3をカレントディレクトリに移動してください。

$ mkdir -p a/b/c
   $ touch a/file1 a/b/file2 a/b/c/file3
   $ tree
   .
   └── a
    ├── b
    │   ├── c
    │   │   └── file3
    │   └── file2
    └── file1
   
   3 directories, 3 files

Q6

次のようにファイルとディレクトリを作り、hogeと書いてあるファイルをディレクトリa、 それ以外のファイルをディレクトリbに振り分けてください。

$ echo hoge > file1
   $ echo huge > file2
   $ echo hoge > file3
   $ echo hoge > file4
   $ mkdir a b

Q7

以下の9つのファイルについて、二つのファイルの組み合わせを全て列挙してください。ただし、重複してはいけません。

uedambp:~ ueda$ touch file{1..9}
   uedambp:~ ueda$ ls file{1..9}
   file1 file2 file3 file4 file5 file6 file7 file8 file9

出力例

file1 file2
   file1 file3
   file1 file4
   file1 file5
   file1 file6
   file1 file7
   file1 file8
   file1 file9
   file2 file3 <- file2 file1 の組み合わせは既出なので出力しない
   file2 file4
   file2 file5
   file2 file6
   ...

Q8

0から999999までの数字の一様乱数を無限に出力し続けてください。

ノート   このエントリーをはてなブックマークに追加 
 

prev:パラグラフライティングについてあまりにも話題にならないので書く。(そしてこの記事をやっぱり誰も読んでくれないので釣りタイトル募集中) next:【本番資料】第10回シェル芸勉強会

やり散らかし一覧

記事いろいろ