シェルワンライナー160本ノック問題44
問題44 行またぎの検索
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
シェルスクリプトという文字列の一部が含まれている行の末尾に@を加える問題だった。練習問題でやった方法で改行をまたぐ文字列を検索するところは分かったが、目印をどう入れるかがわからずに解けなかった。
解答例は
sed -Ez 's/シ.?ェ.?ル.?ス.?ク.?リ.?プ.?ト/%&%/g' diary.txt | sed '/%/s/$/ @/;s/%//g'
となる。問題の文字列を%%で囲って、%のある行の末尾に@を加えるというアイデアで解決している。最後の sed の用法は
The following command replaces the word 'hello' with 'world' only in lines containing the word 'apple':
という仕様に準じている。