Skip to content

Instantly share code, notes, and snippets.

View papiron's full-sized avatar

Katsuya TASHIRO papiron

  • Fukuoka, Japan
View GitHub Profile
問題のリンク
https://b.ueda.tech/?post=20191228_shellgei_45_q
問題データのgitリポジトリ
https://github.com/ryuichiueda/ShellGeiData.git
取得コマンド
$ git clone https://github.com/ryuichiueda/ShellGeiData.git
シェル芸勉強会過去問
@papiron
papiron / gist:0f5df99128adb55434a5eeb5fd883499
Last active December 25, 2017 16:18
うんこチャレンジawk版
シェル芸bot作者さんが作られた、下記うんこチャレンジツイートのawkバージョンだぜ!
140文字に入らなかったのでGistに載せておきましたよ・・・
https://twitter.com/theoldmoon0602/status/945283544682610692
同じような考え方でawk使って実装してみたのがこちら。
```
$ yes う ん こ | awk 'BEGIN{srand()}{i=int(rand()*10)%3+1; print $i}' | awk '{s=$0 s;print $0; if(substr(s,0,3)=="こんう"){exit;}}' | tr -d '\n';echo "つるん";
ううこんんここうううんううこんんうううこんううこんううんうんううんこつるん
```
@papiron
papiron / gist:63f8817e4100c246d37737d1e5e24cbc
Last active September 10, 2017 10:57
pingで「にゃーん」をRubyで
元ネタ:
https://twitter.com/kooshin/status/900923276049891328
http://www.itmedia.co.jp/news/articles/1709/07/news106.html
シェル芸で再現版:
https://twitter.com/grethlen/status/906154326975905793
https://gist.github.com/greymd/79ebdeb31ea08538c76e546ae469ced6
https://twitter.com/ryuichiueda/status/906289652381786112
pingで「にゃーん」のやつ、Rubyでも再現してみたよ。Ciscoルータ持ってない人もこれでほっこり。シェル芸で再現してる人もいるよ。
@papiron
papiron / gist:213ef730968f749d7d6b640aa79db10e
Last active December 25, 2016 16:07
第26回シェル芸勉強会福岡サテライト分
Q2解答例
$ unzip -p 20141019OSC_LT.pptx 'ppt/slides/slide*' | grep -o 危険 | wc -l
17
Q4暫定解答
ポイント:正規表現の最長一致
$ unzip -p 20141019OSC_LT.pptx ppt/slides/slide7.xml | gsed 's/<a:p>/\n&/g' | grep '^<a:p>' | sed 's;<[^<>]*>;;g'
Q5暫定解答
ポイント:正規表現の最長一致
@papiron
papiron / search_prime
Last active December 18, 2016 15:46
10進数140桁の素数を見つける
<<<10進数140桁の素数を見つけ出す>>>
opensslコマンドをフィルタとして活用する。出力の行頭に OpenSSL> というプロンプトが付いてくるのが邪魔ね。
<<地道に順番に見つけ出す>>
# Mac (coreutilsとGNU sedを利用)
$ yes '0 9' | head -n 140 | rs -T | tr -d ' ' | sed '1s/0/1/' | xargs gseq | gsed -u 's/^/prime /' | openssl | grep --line-buffered -v not | awk '{print $2;fflush()}' | (echo 'obase=10;ibase=16'; cat) | BC_LINE_LENGTH=200 bc
## Ubuntu
$ yes '0 9' | head -n 140 | rs -T | tr -d ' ' | sed '1s/0/1/' | xargs seq | sed -u 's/^/prime /' | openssl | grep --line-buffered -v not | awk '{print $2;fflush()}' | (echo 'obase=10;ibase=16'; cat) | BC_LINE_LENGTH=0 bc
@papiron
papiron / randomfill
Last active December 10, 2016 15:52
端末を指定した文字でランダムに埋め尽くす
元ネタはこちら。面白い!
http://raintrees.net/news/93
https://twitter.com/kanata201612/status/806475573824360448
https://twitter.com/kanata201612/status/806477105974259712
https://twitter.com/kanata201612/status/806841499673444353
元ネタをawkでやってみた。awkだと速すぎるのでsleepで遅く調整。終了はCtrl-cで。
最初にカーソルを消しているので、終了後は tput init を実行しよう。
・tput cols 端末の幅(列数)
@papiron
papiron / scrollbanner
Last active December 8, 2016 02:44
BSDのbannerコマンドで出力させたバナーを横にしてスクロールさせるシェルスクリプト
#!/bin/sh
# 必要な追加ソフトウェア: GNU sed、BSD付属のbanner
# Macの場合: $ brew install gnu-sed
# FreeBSDの場合: $ sudo pkg install gsed
# Ubuntuの場合: $ sudo apt install bsdutils
[ $# -lt 1 ] && echo 'Usage: scrollbanner STRING [HEIGHT]' && exit
string="$1"
if [ -z $2 ]; then
@papiron
papiron / coolbanner
Last active January 20, 2024 03:52
クールなバナーを作るシェルスクリプト(MacやFreeBSD用。Linuxの場合は下記のコメントを参照。)
#!/bin/sh
[ $# -lt 1 ] && echo 'Usage: coolbanner STRING [HEIGHT]' && exit
string="$1"
if [ -z $2 ]; then
height=30
else
height="$2"
fi