sed は、次の場合に前の行の最初の単語を次の行の先頭に追加します。

sed は、次の場合に前の行の最初の単語を次の行の先頭に追加します。

問題がありますが、次の問題に対する解決策が見つかりませんでした。

特殊文字で始まる場合は、行の最初の単語を次のn行の先頭にコピーし、そうでない場合は新しい単語をコピーしたいと思います。

入力する:

aaa random words

`dsf

|df

bbb

|d

出力:

aaa random words

aaa`dsf

aaa|df

bbb

bbb|d

ベストアンサー1

awk oneliner:

awk '/^[[:alnum:]]/ {prefix = $1; print; next} {print prefix $0}' input
  • 英数字で始まる行の最初の単語をに保存し、そのprefix行を印刷してから次の行に進みます。
  • 他のすべての行では、prefixこの行の前に印刷してください。

おすすめ記事