【問題と解答】jus共催 第30回危念シェル芸勉強会

Sat Aug 26 15:52:53 JST 2017 (modified: Sun Oct 1 10:50:27 JST 2017)
views: 1027, keywords: コマンド,CLI,Linux,シェル芸,シェル芸勉強会

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

問題のみのページはこちら

問題で使うファイル等

GitHubにあります。ファイルは

https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.30

にあります。

クローンは以下のようにお願いします。

環境

解答例はUbuntu Linux 16.04 で作成。Macの場合はcoreutilsをインストールすると、GNUのコマンドが使えます。BSD系の人は玄人なので各自対応のこと。

イントロ

スライド

Q1

リポジトリの中に、次のようなディレクトリがあります。

この中の、各main.mdは次のようなヘッダ付きのマークダウンです。

これらのファイルから、次のような出力を作ってください。なお、Keywordsの行は各ファイルで最初にある行しか抽出しないこととします。

解答

grepの-mオプションを使うと一番最初にマッチした行を取り出せます。

Q2

次のHTMLファイルurl.htmlについて、リンクが相対パスになっているものについては頭に/files/をつけて、/から始まっているものとhttpやhttpsから始まっているものはそのままにしてください。できる人は変なところに改行があるものなどに対応できるように、なるべく一般解に近づけましょう。

次が出力例です。

解答

いちおうこれで大丈夫だとは思うのですが、自分でもなんだかよくわかりません・・・。

Q3

次のファイルについて、

次のようにHTMLにして、頭にHTTPヘッダをつけてください。インデントは不要ですがタグは1行1個でお願いします。

すぐできて退屈な人は、インターネット上のサーバでこのHTMLファイルを送信するサーバをワンライナーで立ててください。

解答

ゴリゴリやってもあまり苦労はしないと思いますが、Pandocの紹介がてら問題を出しました。

ブラウザからの応答に反応するには、レスポンス行も追加します。(改行は\r\nの方がいいかもしれません。)

Q4

&&や;でコマンドを繋いだワンライナーで、GitHubにリポジトリを作ってそこにテキストファイルを一つ置いてください。

解答

hubの紹介のための問題でした。

Q5

次のファイルの1行目の複素数と2行目の複素数をかけ算してください。

解答

Perlを使ってみました。(Perlに慣れていればもっと前処理は簡単になると思います。)

Q6

フィボナッチ数列で、6765の4つ前の数を出力してください。

解答

Q7

次の数字の列について、00, 01, 02,...,99の数字2つ並びのうち、含まれないものを抽出してください。できる人はループを使わないで抽出してください。

解答

whileやforを使わない場合はこんな感じで。

Q8

次のアルファベットの区間のうち、間に含まれるアルファベットが一番多いものはどれでしょうか。

解答

ブレース展開を使うとこんな感じです。

あとは10進数のasciiコードに変換する方法を示します。



prev:【問題のみ】jus共催 第30回危念シェル芸勉強会 next:jus共催 第30回危念シェル芸勉強会の報告





このサイトではGoogle AdSenseやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.