awkを使用して複数の後続行に条件付き行を追加する方法

awkを使用して複数の後続行に条件付き行を追加する方法

下の箇条書きの先頭に箇条書きを追加しようとしています。

たとえば、次のテキストファイルを変換します。

*foo
  abc
  def
  ghi
*bar
  jkl mno
*hello world
  pqr stu
  vwxyz

次のテキストファイルを入力してください。

foo, abc
foo, def
foo, ghi
bar, jkl mno
hello world, pqr stu
hello world, vwxyz

これは非常に簡単に見え、すでにいくつかのアイデアがありますが、まだ把握していません。

ベストアンサー1

スクリプトの使用awk:

awk '/^\*/{ pfx=substr($0, 2); next }{ print pfx","$0 }' file

出力:

foo,  abc
foo,  def
foo,  ghi
bar,  jkl mno
hello world,  pqr stu
hello world,  vwxyz

おすすめ記事