💨
【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