💨
【Bash】grep で拡張書記素クラスターを扱う
GUN grep は PCRE 2 をサポートしている。
echo -n がぎぐげご | uconv -x NFD | grep -oP '\X'
が
ぎ
ぐ
げ
ご
-o は --only-matching、-P は --perl-regexp である
while read line のワンライナーを使うこともできる
echo -n がぎぐげご | uconv -x NFD | grep -oP '\X' | while read -r line; do echo $line; done
が
ぎ
ぐ
げ
ご
次のように書くこともできる。<(command) はプロセス置換(process substitution)と呼ぶ。
while read -r line; do echo $line; done < <(echo -n がぎぐげご | uconv -x NFD | grep -oP '\X')
が
ぎ
ぐ
げ
ご
while IFS= read -r ret
do
echo $ret
done < <(echo -n がぎぐげご | uconv -x NFD | grep -oP '\X')
grep の出力結果を配列として格納するには readarray を使う。
readarray -t arr < <(echo -n がぎぐげご | uconv -x NFD | grep -oP '\X')
echo ${#arr[@]}
5
echo ${arr[@]}
が ぎ ぐ げ ご
echo ${arr[0]}
が
Discussion