/shellgei160

書籍: シェル・ワンライナー160本ノックの情報ページ #shellgei160

Primary LanguageShellMIT LicenseMIT

シェル・ワンライナー160本ノック(#shellgei160)のリポジトリ

技術評論社から出版された「シェル・ワンライナー160本ノック」のためのリポジトリです。書籍を購入した人は、とりあえず、

$ git clone https://github.com/shellgei/shellgei160.git

をお願いします。(できる人はforkでお願いします。)

このリポジトリの役割

  • 問題で利用するデータの提供
  • 質問の受け付け(issueにて受け付けています。)
  • 訂正の掲示
  • 解答、別解のテキストデータの提供(answerディレクトリにあります。)
    • さらなる別解のプルリクエスト大歓迎(

その他、シェル芸の一般的な情報は、上田の個人サイト内にあるシェル芸のページで随時更新しています。

お知らせ

  • 問題23で記述に誤りがありました。訂正を掲載しました。(20211004)
  • 電子版の一部にスラッシュが抜ける誤りがあるようで、対応中です。(20211004)
    • 対応完了(20211007)

訂正事項

第5刷で対応

ページ 場所 修正前 修正後 発見者・状況 コメント(主に上田)
p.50 3番目のコードブロック直後の1行 というように、年月日、自分秒がそれぞれ 8 桁、6 桁で出力されます。 というように、年月日、時分秒がそれぞれ 8 桁、6 桁で出力されます。 issue57 変換ミスと思われます。
p.51 別解2 $ cat log_range.log | awk '$4" "$5>="[24/Dec/2016 21:00:00]" && $4" "$5<"[25/Dec/2016 03:59:60]"' $ cat log_range.log | awk '$4" "$5>="[24/Dec/2016 21:00:00]" && $4" "$5<"[25/Dec/2016 03:59:60]" && a == 0;$4" "$5>"[25/Dec/2016 02:59:60]"{a++}' issue56 データに3時台のレコードが1つしかなくて不備を見落としていました。
p.51 別解2の下の行 (⇒練習1.3.g)。 (⇒練習1.3.g)。a==0以降は、3時台のデータを2行以上出力しないための細工です。 同上 同上
p.61 練習2.1.e 2段落目の最後の2文 ダブルクォートによるクォートの場合、中にあるBashの変数は解釈されます。また、変数だけでなく、ホームディレクトリを表す˜などの特殊な記号も解釈されます。 ダブルクォートによるクォートの場合、変数やコマンド置換などは解釈されます。 issue50 完全に間違いです。勘違いをそのまま確認せずに書き流してしまいました。すみません:pray:
p.110 補足2の2行目 cowsey cowsay issue51 タイポです。
p.113 最終行 もしくはシングルクォート「'」でくくる必要があります。 もしくはクォートする(「'」や「"」で囲む)必要があります。 issue50 これもダブルクォートでチルダ展開が抑制されることが抜けてました。
p.428 解答をつくっていくなかのgrepのオプション(4箇所) grep -zoP grep -zoE issue52 PCREだと改行が.(ドット)にマッチしないので本文では「念のため」となっているけど念のためになっていなかった。(ebanさんから教えてもらった。)

第2刷まで

ページ 場所 修正前 修正後 発見者・状況 コメント(主に上田)
p.105 問題文4行目 このシェルの挙動もシグナルに関係しています。 これと同じような挙動はシグナルでも実現できます。 issue6 たぶん私が筆を入れたときに埋め込み -> みんなスルーという状況で発生したような気が・・・
p.106 本文の3行目 Ctrl+Qで発行されるシグナル Ctrl+Qと同じ働きをするシグナル 同上 同上
p.127 問題文のコードの10行目 \N \d issue8 あれ・・・なんでだろう・・・
p.129 1番目のコードボックスと本文1行目 \N \d 同上 同上
p.130 練習問題の問題文のコードの7行目 東から始まり 東京から始まり issue9 不注意でした。
p.140 脚注16のURL https://docs.ruby-lang.org/ja/latest/docspec=2fregexp.html https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html issue10 すみません!
p.247 リスト5.3 3行目 2020年1月1日 2020年8月1日 issue23 不注意でした。
p.248 解答例のコードの1行目 ,$0 削除 issue23 間違いですが残っていても動くのでスルーされたようです。
p.266 2番目のコードブロック $ split -b 1000 -d image.bmp image.bmp. $ split -b 1000 image.bmp image.bmp. issue27 -dを使った没案の一部消し忘れのようです。
p.266 2番目のコードブロックの直後の1行 その番号から数字が開始するようになります。 その引数の番号から数字が開始するようになります。 issue27 同上

macでの挙動についての情報

issueに寄せられたコメント

参考サイト

連絡先

  • @ryuichiueda(ひねりのない直球の愚痴・文句、外野からの意見の多い方を目にすると仕事の集中力が落ちるので、全く恨みはないんですけど機械的にブロックしている可能性があります。)
  • 他の著者のTwitterアカウント