sed スペースマッチ混乱

sed スペースマッチ混乱
echo ' 1 2     3  '|sed 's/[[:space:]]*/_/g'

_1_2_____3__出力を見たいです。代わりに、私はそれを_1_2_3_出力として見る。私は何が間違っていましたか? ?

編集する
私を混乱させるもう一つのことは、上記の例で言及していないことです。その理由は次のとおりです。

echo ' test1 test2  ' | sed 's/[[:space:]]*/_/g'

これを見せてください:

_t_e_s_t_1_t_e_s_t_2_

andの間を一致させる方法... [[:space:]]?tes

ベストアンサー1

を使用したため、*ゼロ個以上の空白と一致するという意味です。したがって、ゼロ個以上のスペースが下線で置き換えられます_

努力する:

$ echo ' 1 2     3  ' | sed 's/[[:space:]]/_/g'
_1_2_____3__

[[:space:]]タブ、改行、およびキャリッジリターンとも一致することを忘れないでください。

ノート

おすすめ記事