たいちょーの雑記

ぼくが3日に一度くらい雑記をかくところ

シェル芸

第67回シェル芸勉強会に参加しました

参加しました。今回も参加記として解きなおしを残しておこうと思います。 PowerShell解も余裕があればやります。 当日の配信はこちらです。 Q1 shogiファイルは以下のような内容です 香桂銀金王金銀桂香 飛 角 歩 歩歩歩歩歩歩歩 歩 歩 歩 歩 歩歩歩歩歩歩 …

第65回シェル芸勉強会に参加しました

参加しました。今回は自宅からリモート参戦でした。 新生シェル芸Botがめちゃいい感じでしたね。整備ありがとうございます!! この参加記では時間中の自分の解答と、解きなおしのPowerShell解をしたりしなかったりします。 Q1 以下のようなinputファイルが…

第64回2の6乗シェル芸勉強会に参加しました

参加しました。今回はタイミングよく本会場の近くにいたため、現地参加してきました。 いろんな人にお会いできてよかったなあと思いました。 今回も参加記として自分の解答と復習のPowerShell解を書きます。 問題と解説は当日の配信をご覧ください 問題1 rep…

第63回シェル芸勉強会に参加しました

第63回シェル芸勉強会 参加しました。今回は正規表現とか検索の回とのことでした。参加記として解答とPowerShell解を残しておきます。 当日の配信はこちらです。 問題1 九九の合計を出力する問題。えいでできそうですね。 $ echo {1..9}'*'{1..9} | fmt -1 |…

第62回シェル芸勉強会に参加しました

今回、大阪はサテライトが開催ということで現地参戦しました。 下みたいな感じで盛り上がってました twitter.comみんなPCに向かってクスクス笑っているっていう盛り上がりかたしてます#シェル芸— たいちょー (@xztaityozx_001) 2022年12月3日 問題と解答 い…

第61回シェル芸勉強会に参加しました

第61回シェル芸勉強会に参加しました 今回も午後のみ。余裕があればPowerShell解も提示します。出題された問題などは配信アーカイブのこの辺から Q1 inoutファイルにA,B,Cさんの入退出記録が書いてあります。入退出が矛盾する人がいるので、その人を見つけて…

第60回シェル芸勉強会に参加しました

参加しました 問題 Q1 echoコマンドを使わずに A=$(echo {a,b,c,d}{1,2,3,4})相当のことを実行する問題。これ進研ゼミ(難読化シェル芸)でみたやつだ! set {a,b,c,d}{1,2,3,4} A=$@ echo $A setを使うと位置パラメータに展開されるので、$Aに再代入すれば良…

第59回シェル芸勉強会に参加しました

参加しました 午前 構造化プログラミング入門の第三回。涙の最終回です。 テーブル駆動方式とは論理分の代わりにテーブルの情報を使ってプログラムを制御するもの。 状態遷移表を素直にプログラムにする感じ。講義の途中で演習がありました。自分はC#で解答…

第58回シェル芸勉強会に参加しました

しました 午前 構造化プログラミング入門の2回目でした。ジャクソン流構造化プログラミングについての講義で、例題に図を描いてみたりなどをしました。 配信はこちら 午後 今回はPowerShellでも解きます。問題と解答はこちら Q1 1行目に今日の日付、3行目以…

第57回シェル芸勉強会に参加しました

参加しました 今回は午前もありました 午前 今回は久々に午前がありました。配信はこちら。構造化プログラミングシリーズの1回目。 ダイクストラ大先生の言ってることを理解するにはGotoだらけのプログラムを書くと良いとのことで、状態遷移図とそれを途中ま…

シェル芸160ノック28

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題151 $ curl http://file.ueda.tech/eki/l/11302.xml > a $ cat a | grep -Pe "lon|lat|name" | sd '<[^>]+>' '' | awk '{print $1}' | xargs -n3 | while rea…

シェル芸160ノック27

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題146 $ git branch --no-merged=main -r | xargs -n1 -I@ zsh -c "git log -1 --since $(date -d '30 days ago' +%F) @ | grep . &> /dev/null || {echo branc…

シェル芸160ノック23

9月末に発売されたシェル芸本の続きです。むずかしい gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題121 $ (strace seq 1e7 | head) |& grep -oPe '"[^"]+"' | grep / "/usr/bin/seq" "/etc/ld.so.preload" "/etc/ld.so.cache" "/lib/x86_64-linux-g…

シェル芸160ノック22

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題116 $ exa /dev/ -l | grep "^b" | awk '{print $NF,$2}' loop0 7,0 loop1 7,1 loop2 7,2 loop3 7,3 loop4 7,4 loop5 7,5 loop6 7,6 loop7 7,7 ram0 1,0 ram1…

シェル芸160ノック21

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題110 $ fd . --hidden --type=d /var/log --exec zsh -c 'echo {} $(fd --type=f --max-depth=1 --hidden . {}|wc -l)' /var/log/unattended-upgrades 0 /var/…

シェル芸160ノック20

9月末に発売されたシェル芸本の続きです。いっぱい解いちゃった gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題103 $ seq 99 | awk '{print "ln hoge "$1}' | bash $ ls -l hoge -rw-r--r-- 100 xztaityozx xztaityozx 2 Dec 13 19:57 hoge 問題104 …

シェル芸160ノック18

9月末に発売されたシェル芸本の続きです。パズルむずい gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題90 $ echo 12 4 34 8 56 16 | xargs -n2 | awk '{print "numconv -b"$2" <<< "$1}' | bash| jq -s add 120 問題91 $ echo {2,3,5,7},{2,3,5,7},{…

シェル芸160ノック17

9月末に発売されたシェル芸本の続きです。いつの間にか半分終わってた gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題85 $ echo | xxd -ps | sd '0a' '' | sd '20' ' ' | fmt -1 | xargs -n1 -I@ printf "%d\n" 0x@ | numaverage | numconv -t Hex…

シェル芸160ノック15

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題74 $ cat qdata/74/days.txt | ocs -ISystem.Globalization '{var j=new CultureInfo("ja-JP");j.DateTimeFormat.Calendar = new JapaneseCalendar();println…

シェル芸160ノック14

9月末に発売されたシェル芸本の続きです。文字コードに突入した。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題68 $ s=0;t="$(bc <<< 2^100)";while [[ $(bc <<< $t-$s) != 1 ]]; do m=$(bc <<< "($t+$s)/2"); echo $m; date -d @$m && s=$m || t=…

シェル芸160ノック13

9月末に発売されたシェル芸本の続きです。日付変換系はいろんなテクニックやオプションが解説で見られて楽しいですねえ gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題63 $ dateutils.dseq --format "%Y-%m %w" 2021-01-01 2021-12-31 | awk '$2==00…

シェル芸160ノック12

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題57 $ cat qdata/57/table.md | sd '\|' ' | ' | column -t | sd ' ?\| ?' '|' | AAA | BBB | CCC | | --- | --- | --- | | 1 | 123 | 4 | | 10000 | 1 | 64 |…

シェル芸160ノック11

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題52 awk '{print FILENAME,$0}' qdata/52/* | awk '$2=="*"{for(i=3;i<=NF;i++)a[i]=$i}$2!="*"{for(k in a) print $1,$2,a[k],$k}' | sel -d_ 2 U X A 4 U X …

シェル芸160ノック10

9月末に発売されたシェル芸本の続きです。データの集計・変形は普段からよくやるからか手段が思いつきやすいですね gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題47 $ cat qdata/47/mom.csv | awk -F, '{if(s){$3=($2/s-1)*100;$3=($3<0?$3:"+"$3)"…

シェル芸160ノック9

9月末に発売されたシェル芸本の続きです。問題45がとんでもなく難しく初めてギブしました gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題42 cat qdata/42/item.md | teip -og '^(#|\d.)' -- awk '{$1=="#"?s=1:$1=s++".";print}' # AAA 1. AAAはすご…

シェル芸160ノック8

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題37 $ cat qdata/37/diarydiary.txt | paste -sd '' | grep -oPe "(.+)\1" 私は私は シェル芸シェル芸 問題問題 すす いろいろ 問題38 $ cat qdata/38/this_is…

シェル芸160ノック7

9月末に発売されたシェル芸本の続きです。正規表現めちゃめちゃに難しい gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題31 $ cat qdata/31/iampen.txt | perl -pe "s{(?<=<strong>)([^<]+)}{\U\$1}" This is <strong>A PEN</strong>. I am a pen. <pre>Are you pen?</pre> <strong>YES</strong>, I am. 問</strong>…

シェル芸160ノック6

9月末に発売されたシェル芸本の続きです。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題26 $ function zshaddhistory() { local now="$(date +%H)"; [[ "$now" -ge 18 ]] || [[ "$now" -le 4 ]] && echo "早く帰れ" } 解答例みたいにすべての行動…

シェル芸160ノック5

9月末に発売されたシェル芸本の続きです。問題21をやっていたらzshexpnを読み込むことになってしましました。できることが多いですね。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題21 $ (cd qdata/21; fd --type=f --exclude="dir_b/d*" . ./) di…

シェル芸160ノック4

シェル芸本の続きです。今回はシェルの機能を使おう!というセクションだったのでmanを探検するなどしました。 gihyo.jp 前回はこちら xztaityozx.hatenablog.com 問題16 $ n=XYZ;(for i in {A..C}; do n+=$i;echo $n;done);echo $n XYZA XYZAB XYZABC XYZ …