私の入力ファイルが次のようになっているとしましょう。
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;}
各行を繰り返し、文字で始まる行が出るまで、すべてのスペース、タブ、および改行をコンマで置き換えます。