Skip to content

Instantly share code, notes, and snippets.

Katsuya TASHIRO papiron

Block or report user

Report or block papiron

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@papiron
papiron / gist:0f5df99128adb55434a5eeb5fd883499
Last active Dec 25, 2017
うんこチャレンジawk版
View gist:0f5df99128adb55434a5eeb5fd883499
シェル芸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 Sep 10, 2017
pingで「にゃーん」をRubyで
View gist:63f8817e4100c246d37737d1e5e24cbc
元ネタ:
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 Dec 25, 2016
第26回シェル芸勉強会福岡サテライト分
View gist:213ef730968f749d7d6b640aa79db10e
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 Dec 18, 2016
10進数140桁の素数を見つける
View search_prime
<<<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 Dec 10, 2016
端末を指定した文字でランダムに埋め尽くす
View randomfill
元ネタはこちら。面白い!
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 Dec 8, 2016
BSDのbannerコマンドで出力させたバナーを横にしてスクロールさせるシェルスクリプト
View scrollbanner
#!/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 May 15, 2018
クールなバナーを作るシェルスクリプト(MacやFreeBSD用。Linuxの場合は下記のコメントを参照。)
View coolbanner
#!/bin/sh
[ $# -lt 1 ] && echo 'Usage: coolbanner STRING [HEIGHT]' && exit
string="$1"
if [ -z $2 ]; then
height=30
else
height="$2"
fi
View ログ解析のサンプルデータ(シェルスクリプトマガジンvol.40の7ページ)
シェルスクリプトマガジンvol.40の7ページで紹介されているログ解析のサンプルデータを打ち込みました。
私が書いた記事ではないので気が引けますが、せっかく打ち込んだので公開しておきます。
コピペして使ってください。
$ cat proxy.log
date time srcip fqdn service category ua snd rcv
2016-06-11 14:33:32 192.168.0.5 www.sbmc.co.jp http banking safari 112 24764
2016-06-11 10:34:22 192.168.0.3 www.nic.ad.jp https technology firefox 214 2554
2016-06-11 14:25:45 192.168.0.2 uptime.netcraft.com https technology safari 986 67523
2016-06-11 09:22:21 192.168.0.4 www.mof.go.jp http government chrome 672 2554
View マイナンバーを列挙する並列コマンド
元ネタはこちら。
真・マイナンバーシェル芸
http://papiro.hatenablog.jp/entry/2016/04/09/005547
チェックデジットに適合したマイナンバーをひたすら列挙するだけの誰得シェルスクリプト。
高負荷がかかり危険なので、念のため下記の止め方を必ず確認しておくべし。
GNU seqコマンドとmawkコマンドを利用。バックグラウンド10並列で処理。
マシンに高負荷がかかり危険なので、念のため1億行を出力した時点で強制終了させている。
処理速度は私が使ってるMacbook Air(物理2コア論理4コア)で1分30秒程度。
@papiron
papiron / gist:f256f09e5a6ddde1d28f
Last active Mar 13, 2016
シェルスクリプト入門福岡の解答例
View gist:f256f09e5a6ddde1d28f
2016/03/11 (金) に開催された「シェルスクリプト入門 福岡」の別解です。
https://atnd.org/events/75045
問題とデータは下記を参照のこと
https://github.com/ShuyaMotouchi/shellstadyQ
Tukubaiコマンドは下記を参照のこと。
https://uec.usp-lab.com/TUKUBAI/CGI/TUKUBAI.CGI?POMPA=LIST
これらの解き方はあくまでも例に過ぎません。他にも色々なやり方があるので考えてみよう。
You can’t perform that action at this time.