たいちょーの雑記

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

シェル芸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_it.txt | sed -E ':a;s/&/\&/g;/amp/b a;s/"/"/g'
$ x='() { :;}; echo vulnerable' bash -c 'echo this is a test'
vulnerable
this is a test

sedのラベル、初めて使ったまである

問題39

$ cat qdata/39/bash_description.txt | fmt -31
Bash is an sh-compatible
command language interpreter
that executes commands read
from the standard input
or from a file. Bash also
incorporates useful features
from the Korn and C shells
(ksh and csh).

manだとハイフネーションもできるのすごい

問題40

$ cat qdata/40/kanjinum.txt | sed -zE 's@\n(。|、)@\1\n@g' | teip -og '[一|四|五|七|十|百|千|兆]+' -- numconv
私が小学1年生の時は、
47都道府県の位置
と名前を全て覚えるくらいに
物覚えは良かったですが、
テストで100点満点を
取り、親から5000000000000000円を
プレゼントされることは
ありませんでした。

Onigurumaを使えば、\p{No}+で漢数字はマッチできる気がしたけどできなかった

問題41

$ cat qdata/41/annotation.md | grep -oPe "\[\^about_.\]:?" | sort -u | sd '\]$' '] 目印' | sd ':$' '  注釈' | sel 2 1 | uniq -f1 -u
目印 [^about_b]
注釈 [^about_d]
注釈 [^about_f]

uniqってフィールドの無視できたんですね~知らなかった。