sed/awk ファイルデータの操作

sed/awk ファイルデータの操作

次の数字が前にあるテキストファイルがたくさんあります。

12 some text here
some text here
some text here

または時には次のようになります。

123 text here

some more not-so-interesting text here

some text here

even more not-so-interesting text here

次のように見えるようにする必要があります。

12

some text here
some text here
some text here

sed、awk、またはいくつかのコマンドラインツールを使用できますか?その行の他のテキストとは別の新しい行に数字を入力します。

答え1

その数字を覚えて、その後のスペースを改行文字に置き換えます。

sed 's/^\([0-9][0-9]*\) /\1\n/'

sed がサポートしている場合は、拡張正規表現を使用して読みやすくすることができます。

sed -E 's/^([0-9]+) /\1\n/'
  • [0-9]数字と一致
  • *「0回以上」を意味します。
  • +「少なくとも一度は」という意味
  • \(...\)または、(...)「キャプチャグループ」を作成すると、最初のキャプチャグループ\1などを参照できます。
  • \n改行文字を表します。

関連情報