【問題】jus共催 第52回見目麗しく端正で上品なシェル芸勉強会
Sun Feb 21 10:27:13 JST 2021 (modified: Sun Feb 21 10:27:13 JST 2021)
views: 1312, keywords:プログラミング,勉強会,シェル芸,シェル芸勉強会 この記事は最終更新日が3年以上前のものです。
- 問題で使われているデータファイルはGitHubにあります。クローンは以下のようにお願いします。
git clone https://github.com/ryuichiueda/ShellGeiData.git $
- 環境: 解答例はUbuntu 20.04で作成。Macの場合はcoreutilsをインストールすると、GNUのコマンドが使えます。BSD系の人は玄人なので各自対応のこと。
Q1
ファイルbig_dipper
の星の部分にchiki
に書かれた「チキチキボーン」という文字を埋め込んでください.
$ cat big_dipper
*
*
*
*
*
*
*
$ cat chiki
チキチキボーン
参考:
チキチキボーン丼を作ろうと思ってる
— kanata (@kanata201612) February 6, 2021
Q2
次のupdown
とchiki
ファイル:
$ cat updown
^v^^^^v^^^^^vvvvv^vv
$ cat chiki
チキチキボーン
から,次の出力を得てください.
チ チキボー チキチキボ キ
^ v ^ ^ ^ ^ v ^ ^ ^ ^ ^ v v v v v ^ v v
キ ン ーンチキチ ボー
Q3
dekiru
の「出来」のうち、 ひらがなにすることが適切なものをひらがなに修正して、 別のファイルに保存してください。 文脈に依存するので、一般解を求める必要はありません。 その後、修正前後の原稿の各行を見やすく横に並べて、変更した箇所、 変更していない箇所がひと目で分かるように出力してください。
$ cat dekiru
学生の論文を添削していると「できる」を
「出来る」と書いてしまう人がいて、
たまにそれとなく注意を促したり、
だまって直してgitのdiffで気づいてと
思ったりしています。
基本的に、「出来る、出来ない」
はひらがなでかきます。
「出来事」、「出来高」など、
名詞の場合は漢字にします。
細かい話かもしれませんが、
このようなほんの些細なことの積み重ねで、
読みやすい文章になるわけです。
書き手になったときに、それを忘れて
細かいことはどうでもいいという
態度でよいのでしょうか。
プログラムでインデントや変数の名前に厳しい人が、
作文になると甘くなるのは、
単に自分が好きなことだけにこだわっているだけです。
確かにこのような表記のルールは膨大で
完璧には出来ませんし、
学会によっても少し違うこともあります。
しかし、コードの規約と同様、
常によりよい記述が出来ることを
目指す必要があります。
Q4
aho.html
は、一箇所、タグの名前が間違っているところがあります。間違いは何行目にあるでしょうか。何行目にあればよいか分かれば、全部ワンライナーで解く必要はなく、目視をつかっても構いません。
Q5
次のannotation.md
は、ソフトウェアデザイン2018年3月号のシェル芸人からの挑戦状で用いたものです。 このマークダウンについて、文中の[^about_a]
などの注釈の記号の部分に、ファイル下の注釈を埋め込んでください。 埋め込む際は、TeXの記号\footnote{...}
を使ってください。
$ cat annotation.md
# Aについて
A[^about_a]は素晴らしい。
Aのに似たものとしてB[^about_b]が存在するが、やはりAには及ばない。
他方でAに匹敵すると言われるC[^about_c]が近年注目を集めているが、これについても触れたい。
CとはもともとはDを発展させたものであり、F[^abort_f]という別名もある。
[^about_a]: Aの起源は室町時代に遡る。
[^about_c]: Cの起源は江戸時代に遡る。
[^about_d]: Dの起源はわからない。
[^about_f]: Fはおいしい。
出力例を示します。
# Aについて
A\footnote{Aの起源は室町時代に遡る。}は素晴らしい。
Aのに似たものとしてB[^about_b]が存在するが、やはりAには及ばない。
他方でAに匹敵すると言われるC\footnote{Cの起源は江戸時代に遡る。}が近年注目を集めているが、これについても触れたい。
CとはもともとはDを発展させたものであり、F[^abort_f]という別名もある。
Q6
TeXは、章のタイトルや式のうしろに\label{ラベル}
と書くと、 章や式の番号を\ref{ラベル}
で埋め込むことができます。 これを踏まえて、
- ラベルがあるのに参照されていない
- 存在しないラベルを参照している
箇所の行番号と行を出力してください。1と2を区別する必要はありません。
Q7
TeXの原稿contents.tex
から,3x3行列を抜き出してください. 3x3行列は,次のように記述されています.
\begin{bmatrix}
から\end{bmatrix}
の間に3行で記述されている.- 各行に
&
で区切られた3個の式が記述されている. - 各行の行末は
\\
で終わっている.
一般解を考えるのは大変なので、とりあえずbmatrixの部分を抽出して、3x3行列だけ残せばよいです。
Q8
TeXの原稿contents.tex
には、別の場所に全く同じテキストが複数行にわたって重複して書いてある部分がいくつかあります。 「複数行にわたって重複」というのは、たとえば「1〜3行目と100〜102行目が全く同じ」というような意味です。 このような部分の行番号を求めてください。 出力から目視できればよく、特に出力を整形する必要はありません。 \begin{align}
や空行など、コンテンツに関係ないものが複数行にわたって重複している部分は出力しなくても大丈夫です。