sed 文の結合

sed 文の結合

私の入力ファイルが次のようになっているとしましょう。

ID1
1    5
6    8
ID2
1    4
5    7

私はこれらのタスクを組み合わせることができるループを定式化したいと思います。

  • 行が文字で始まる場合:フィールドの後に '\ n'を残します。

  • 行が数字で始まる場合:sed 's / \ t /, / g; s / \ n /, / g '次の行がsed 's / \ t /, / g'文字()で始まらない限り、各 '\ t'と '\ n'をコンマ()で置き換えます。

予想出力:

ID1     
1, 5, 6, 8
ID2     
1, 4, 5, 7

ベストアンサー1

sed '/^[0-9]/{:a;s/[\t\n ]\+/,/g;N;/\n[A-Z]/!ba;}'

行われること。

説明する:

/^[0-9]/数字で始まる行だけを一致させ、その行にコマンドグループを適用します。

{}要求されたコマンドグループ

{:a;s/[\t\n ]\+/,/g;N;/\n[A-Z]/!ba;}各行を繰り返し、文字で始まる行が出るまで、すべてのスペース、タブ、および改行をコンマで置き換えます。

おすすめ記事