たいちょーの雑記

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

シェル芸160ノック16

9月末に発売されたシェル芸本の続きです。無敵のteipコマンドありがとう

gihyo.jp

前回はこちら

https://xztaityozx.hatenablog.com/entry/2021/12/08/220451:cite:mebed

問題79

# ↓でテキトウにいい感じの出力になってるのを目で探す
$ iconv --list | fmt -1 | sd // '' | xargs -n1 -I@ zsh -c "iconv ./qdata/79/message.txt -f @ 2>/dev/null && echo @"


$ iconv -f IBM1390 ./qdata/79/message.txt
イカれたメンバーを紹介するぜ!
真イカのパプリカソースの修平

以上だ!

イカれてるぜ!

問題80

$ cat qdata/80/zeroone | opy '[hex(int(str(F1),2))]' | sd 0x '' | xxd -p -r
不労所得

ワロタ

問題81

$ cat qdata/81/bom.txt | sel 1 1 | teip -f1 -- zsh -c "xxd -p | grep -Pe '^efbbbf' &> /dev/null  && echo '[BOM]'"
[BOM] <feff>ボムボムプリンおいしい


$ cat qdata/81/nobom.txt | sel 1 1 | teip -f1 -- zsh -c "xxd -p | grep -Pe '^efbbbf' &> /dev/null  && echo '[BOM]'||echo ''"
 ボムボムプリン完売

問題82

$ split -b 1000 --numeric-suffixes=1 image.bmp image.bmp.

splitってこういうコマンドだったんだ

問題83

$ iconv qdata/83/soleil.bash -f sjis | sed 1d | sel 2 | sd '(.+)' 'iconv -f utf8 -t sjis <<< "$1"' | sed 1i'#!/bin/bash' > new_soleil.bash

$ cat new_soleil.bash
#!/bin/bash
iconv -f utf8 -t sjis <<< "親戚のソレイユちゃんは表情が豊かで可愛い女の子。"

$ bash new_soleil.bash | iconv -f sjis
親戚のソレイユちゃんは表情が豊かで可愛い女の子。

sjisな文字列をそのままechoしてるわけじゃないからレギュレーション違反な可能性がある

問題84

$ zcat qdata/84/newline.txt.gz|xxd -ps|grep -oPe '0d0a|0a' | sort | uniq -c | sort -rn | sd '0d0a' 'CRLF' | sd '0a' 'LF' | sel -gd\\s+ --remove-empty 2 1
CRLF 8
LF 8