【問題のみ】第21回未経験者大歓迎!誰でも働けるアットホームな職場ですシェル芸勉強会
Sat Feb 13 14:01:10 JST 2016 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 3336, keywords:コマンド,CLI,Linux,UNIX/Linuxサーバ,USP友の会,勉強会,シェル芸,シェル芸勉強会 この記事は最終更新日が7年以上前のものです。
問題で使うファイル等
GitHubにあります。ファイルは
https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.21
にあります。
クローンは以下のようにお願いします。
git clone https://github.com/ryuichiueda/ShellGeiData.git $
環境
今回はUbuntu Linuxで解答例を作りましたので、BSD系、Macな方は以下の表をご参考に・・・。
Mac,BSD系 | Linux |
---|---|
gdate | date |
gsed | sed |
tail -r | tac |
gtr | tr |
gfold | fold |
イントロ
補記
最近あまり本の宣伝をしていないのでシェルプログラミング実用テクニックから問題を持ってきました。
[amazonjs asin="4774173444" locale="JP" title="シェルプログラミング実用テクニック (Software Design plus)"]
Q1
ShellGeiData/vol.21/Q1のbba.pdfからテキストを抽出して標準出力に出してください。
Q2
次のデータはShift JIS(cp932)の固定長データです。
cat anydata.cp932
$ 00000001??ӹ?ݺ?*******214413051100000002ʰ????ݸ*********114413018800000003???ӷ?ݺ?********210413093100000004??ݷ?ݺ?*********234413000800000005???ް??׳???ݺ?331413090000000006??Э????ݾ??ݺ?1234130981
次のようなUTF-8のテキストに変換してください。
00000001ハナモゲギンコウ*******2144130511
00000002ハードバンク*********1144130188
00000003コドモギンコウ********2104130931
00000004ハタンギンコウ*********2344130008
00000005アンダーグラウンドギンコウ3314130900
00000006バミューダメンゼイギンコウ1234130981
Q3
2016年の日曜日を全て列挙してください。
Q4
次のデータファイル
001 あみだばばあ
002 砂かけばばあ
003 ******
004 尾崎んちのババア
に、次の新しいデータ
002 *******
003 群馬のシャブばばあ
005 純愛ババア学園
を反映して
001 あみだばばあ
002 *******
003 群馬のシャブばばあ
004 尾崎んちのババア
005 純愛ババア学園
というデータを出力してください。
Q5
GitHubのvol.21/Q5にある次の二つのシェルスクリプトのデバッグをしてください。
cat ./a.bash
$ #!/bin/bash
echo Hell
###実行すると変なバグ###
./a.bash
$ ./a.bash: 行 1: #!/bin/bash: そのようなファイルやディレクトリはありません
Hell
cat b.bash
$ #!/bin/bash
ls ˜/
###ホームディレクトリが表示されない###
./b.bash
$ ls: ˜/ にアクセスできません: そのようなファイルやディレクトリはありません
Q6
次の拡張正規表現をワンライナーで基本正規表現に変換してください。括弧の中の数字は数字の回数の文字列の繰り返しに展開してください。
cat extended
$ a+h{5}(ho){10}[0-9]+
Q7
GitHubのvol.21/Q7にあるテキストについて、各段落の文字数を数えてください。
Q8
GitHubのvol.21/Q8にある1350369599.Vfc03I4682c8M940114.remoteから添付ファイルを抽出して画像を復元してください。二つありますが別々に処理して構いません。