スペースに置き換える方法は?

スペースに置き換える方法は?

理由説明ここ。ピリオドとスペース(たとえば、.\tまたは)をピリオドと改行文字、スペースに置き換えたい.\n(例の文字列をそれぞれまたは.\n\tに変更.\n\n)。

Bash / Linuxでこれを効率的に実行できますか?

(私は基本的なsedを知っていますが、このようなパターンを処理するのに十分ではありません。)

答え1

sed:

sed -E 's/\.([[:space:]]|$)/.\
\1/g'

GNUの使用sed:

sed -E 's/\.(\s|$)/.\n\1/g'

答え2

GNUでグループ化を使用できますsed

sed -E 's/\.(\s)/.\n\1/g' file

()グループ化は、後で一致する正規表現の一部を使用しようとするときに使用されます。

グループはソートされ、番号でグループを参照できます。たとえば、ここにあります。\1

  • -E(エスケープを防ぐには、拡張正規表現を有効にし、)

関連情報