X



正規表現
レス数が1000を超えています。これ以上書き込みはできません。
0960名無しさん@お腹いっぱい。
垢版 |
2018/12/21(金) 21:02:43.67
bashで半角スペースの繰り返しを半角スペース1つに変換する正規表現で困っています。
ちなみに、sedなら何も問題なくできます。でもsedはプログラムを起動する分遅くなります。
bashの場合、次のように書くと、不完全ながらも空白スペースを縮めることはできました
"${str// [ \{1\,\}]/ }"

こいつを何回か繰り返すと連続スペースを1スペースにできるのですが、あまりに不細工すぎて、
何かまともな書き方はないでしょうか?
下のRep2Oneはbashで動作する、
str中、2回以上chrが連賊する箇所を1回に縮める関数です。

function Rep2One(){
local str=$1
local chr=$2
while :
do
str="${str//$chr$chr/$chr}"
# echo "str = $str"
if [[ ! $str =~ $chr$chr ]]; then
break
fi
done
echo "$str"
}
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 5942日 11時間 17分 40秒
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況