全部の問題を解かなければならないというものではありません. そこそこ難しい問題が混ざっています. できる人はいろいろやってみてください. それ以外の人は,できる範囲でやってみてください.
FizzBuzz (フィズバズ)
以下のような感じで表示されたらよい.
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 ...
とりあえず,100くらいまで表示してみる.
普通にスクリプトを書くと一瞬で100まで表示されてしまう. あんまり速いと楽しくないので,sleep というコマンドを使ってみる. sleep は後ろに数字をひとつ書いて使う. 後ろに書いた数字の秒数だけ,処理を停止する. 例えば,
sleep 10
とすると,10秒間停止する(10秒も停止させたら鬱陶しくなるので数字は適当に調整しましょう).
世界のナベアツ
3の倍数と3のつく数字ではアホになる.
1 2 AHO 4 5 AHO 7 8 AHO 10 11 AHO AHO 14 AHO 16 ...
変数 text に文字列 word が含まれるかどうか調べる
if [ $( echo $text | grep $word ) ]; then echo 'found' else echo 'not found' fi
月の日数を答える
曜日判定
素数判定
素数探索
素因数分解
スクリプトに引数 m を渡して,次の数列を計算させる
X_{0} = X_{1} = ... = X_{m-2} = 0, X_{m-1} = 1 X_{n+m} = X_n + X_{n+1} + ... + X_{n+m-1}
文書中で使用されている各アルファベットの使用回数を数える.
/mnt/data/text/My_favorite_things.txt /mnt/data/text/Hotel_Mauna_Kea.txt /mnt/data/text/Potential_Vorticity.txt /mnt/data/text/Lorem_ipsum.txt /mnt/data/text/Pangram.txt
for char in {a..z}; do echo $char done
infile という名前のファイルに中にある Win を Mac に置き換える
$ sed -e "s/Win/Mac/g" infile
以下のようにすれば削除になる
$ sed -e "s/Win//g" infile
入力はパイプで流し込むことも可
$ cat infile | sed -e "s/Win/Mac/g"
[a-z] は a から z までのいずれかの文字
$ sed -e "s/[a-z]/X/g" infile
[^a-z] は a から z までのいずれかの文字以外
$ sed -e "s/[^a-z]/X/g" infile
$ echo ${word,,}
あるいは
$ echo ${word} | tr A-Z a-z
$ wc -m infile $ cat infile | wc -m
エドガー・アラン・ポーの有名な小説.下のリンク先を見るとネタバレしちゃうので,これから小説を読むつもりの人は考えてからクリックしてください.