ATND アテンド β PRODUCED BY RECRUIT

ログイン or 無料登録

第29回シェル芸勉強会:福岡サテライト

日時 :
2017/07/01 (土) 10:00 ~ 18:00
定員 :
12人
会場 :
株式会社レスコ(旧ベータソフト)様会議室(福岡県福岡市博多区博多駅前3丁目22−8 朝日生命博多駅前ビル 3F)
URL :
https://usptomo.doorkeeper.jp/events/61406
主催グループ :
Atnd latent シェル芸福岡

第29回シェル芸勉強会 福岡サテライト会場

概要

東京で開催される第29回シェル芸勉強会に、Youtubeライブストリームでリモート参加します。福岡サテライト会場としては13回目です。

UNIXの基礎であるCLIなシェルやコマンドの使い方の訓練所です。小さな問題を解いていくスタイルです。シェル芸コワイという噂があるようですが、問題が難しい場合はサポート重視しますのでご安心ください。

今回の内容は、午前の部が「Perlの正規表現」、午後の部は3部構成(データのJOIN、パズル、巨大文字)という事です。

終了後にLTなどあれば宜しくお願いします。LT練習場所と思っていただきたく。

日時

  • 2017年7月1日(土)10:00〜18:00
  • 9:30〜10:00 開場、準備など
  • 10:00〜11:45 午前の部「Perlの正規表現」
  • 13:00〜16:00 午後の部「第29回シェル芸勉強会」
  • 16:00〜18:00 LTなどあれば。後片付け。

開催場所

  • 会場: 株式会社レスコ(旧ベータソフト)様会議室
  • 住所: 福岡県福岡市博多区博多駅前3丁目22−8 朝日生命博多駅前ビル 3F

参加費など

  • 参加費は無料です。
  • 会場には無線LANがありますが、念のためWifiルータなども持って来ていただけると助かります。

連絡先

連絡はTwitterの @papiron 宛へ

ハッシュタグ

#シェル芸

持参物

初心者の方は@papironがサポートさせていただきます。

  • UNIX系OSが使えるパソコン
    • 各種Linux(VirtualBoxに入れたLinux等もOK)
    • Mac
    • FreeBSD(日本語環境が使えたほうが良い)
    • Cygwinでも大丈夫かも?
    • 今ならBash on WIndowsも?
  • おやつ(300円まで)

準備して欲しいソフトウェア

シェルはbashが前提ですが、他のシェルでも可能です。コマンドはGNU版のsed、awk、grepなどを使います。Linux系ならまず大丈夫。

Macの場合

homebrewで下記をインストール。

$ brew install coreutils
$ brew install gnu-sed
$ brew install gawk
$ brew tap homebrew/dupes
$ brew install homebrew/dupes/grep

参考:高速化したGNU grepをインストールする

FreeBSDの場合

pkgで下記をインストール。

$ pkg install bash
$ pkg install coreutils
$ pkg install gsed
$ pkg install gawk
$ pkg install gnugrep

Open usp Tukubai

ユニケージ開発手法で利用されるTukubaiコマンドのオープンソース版Open usp Tukubaiコマンドもあると便利です。入手先は下記のリンクを参照。わからない場合はサポートさせていただきます。

Open usp Tukubai

インストール方法

gitで最新版をcloneしてmake installしてください。sudoは必要に応じて。

$ git clone git://github.com/usp-engineers-community/Open-usp-Tukubai.git
$ cd Open-usp-Tukubai
$ sudo make install

Macの場合はHomebrewのFormulaを公開しています。

$ brew tap papiron/shelltool
$ brew install papiron/shelltool/open-usp-tukubai

FreeBSDの場合はpkgでインストール可(ただし古いバージョン)

$ sudo pkg install open-usp-tukubai

その他便利なコマンド

  • nkf (文字コード変換やurlencode/urldecodeなど)
  • md5sum (ファイルのハッシュ値)
  • jq (JSONの扱い)
  • tree (ディレクトリ構造表示)
  • このコメントは全員が閲覧、すべてのログインユーザーが投稿することができます
papiron
papiron - (2017/07/01 (土) 13:45)
問2のポイント
$ cat attend6 | tr ',' '\n' | sort | sed 's/$/ 出/' | join -a 1 attend -
001 山田 出出欠出出 出
002 出川 出出欠欠欠
003 上田 出出出出出 出
004 今泉 出出出出出
005 鳥海 欠出欠出欠 出
papiron
papiron - (2017/07/01 (土) 14:14)
問4.1
$ echo -1 4 5 2 42 421 44 311 -9 -11 | tr ' ' '\n' | sort -n | awk '{print length,$0}' | sed '/-/s/^/-/' | awk '{a[$1]=a[$1]" "$2}END{for(v in a)print v,a[v]}' | sort -k1,1n | awk '{$1="";print}'
-11
-9 -1
2 4 5
42 44
311 421
papiron
papiron - (2017/07/01 (土) 14:23)
問4.1 上田さん解答
$ echo -1 4 5 2 42 421 44 311 -9 -11 | tr ' ' '\n' | sort -n | awk 'length(a)!=length($1){print "";a=$0}{printf $0" "}' | awk NF
-11
-9 -1
2 4 5
42 44
311 421
papiron
papiron - (2017/07/01 (土) 15:02)
Q6解答例 LInuxの人はgfactorをfactorにしてください。
$ seq 1 100 | gfactor | awk 'NF==2{print $2}' | cat | awk NF
2 3 5 7 11 13 17 19
31 37 41 43 47 53 59
67 7
papiron
papiron - (2017/07/01 (土) 15:04)
Q6解答例 LInuxの人はgfactorをfactorにしてください。
$ seq 1 100 | gfactor | awk 'NF==2{print $2}' | cat <(cat prime | tr ' ' '\n') - | sort | uniq -c | sort -s -k2,2n | awk '$1==2{printf $2" "}$1==1{print ""}' | awk NF
2 3 5 7 11 13 17 19
31 37 41 43 47 53 59
6
papiron
papiron - (2017/07/01 (土) 15:39)
Q8解答
$ cat shellgei | tr ' ' '-' | sed 's/./& /g;s/ $//' | rs -T | grep -v '^[- ]*$' | rs -T | tr -d ' ' | tr - ' '
m
""m m "m # # # #
mm # # #mmm""" m"
"
papiron
papiron - (2017/07/02 (日) 22:03)
開催レポートブログ記事を外部リンクに入れました。

コメントを投稿するには、ログインしてください。

掲載されるイベント情報は、利用者の皆様によりご提供いただくものであり、株式会社リクルートホールディングスは本情報の正確性や内容について、一切保証するものではございません。詳しくは利用規約をご参照ください。