1

2つのタグの場合は、awkまたはsedを使用して\n削除してみます。

例:1列に改行が入ったcsvファイルフレーム。この新しい行を削除する必要がありますが、テキストや各行の間の新しい行は削除する必要はありません。

row1-col1;row1-
col2;
row2-col1;row2-
col2;

次のようになります。

row1-col1;row1-col2;
row2-col1;row2-col2;

私は成功せずに多くのフィルターを試しましたが、今は少し混乱しています。

助けてくれてありがとう

4

5 に答える 5

1

これを試して:

awk '{if ($0~/;$/)print $0;else printf $0}' file
于 2013-03-07T21:57:29.470 に答える
1

本当に 1 行おきに連結するだけの場合は、次のようにすることができます。

awk '(NR % 2) == 1 { saved=$0; next; } { printf("%s%s\n", saved, $0); }' file.txt

最初の句はすべての奇数行を出力せずに保存し、2 番目の節は保存した行に続いて現在の行を改行なしで出力します。

于 2013-03-07T21:55:34.230 に答える
0

行が常に分割されている場合-は、次のsedスクリプトを使用できます。

sed ':a;N;$!ba;s/-\n/-/g' file.txt
于 2013-03-07T21:53:59.613 に答える
0

を使用した片道sed。最後の行 ( ) まですべての入力を追加$!し、前に . があるすべての改行を削除し-ます。

sed -n ':a ; $! { N; b a }; s/-\n/-/g ; p' infile

次の結果が得られます。

row1-col1;row1-col2;
row2-col1;row2-col2;
于 2013-03-07T21:55:22.230 に答える
0
$ cat file                      
row1-col1;row1-
col2;
row2-col1;row2-
col2;

$ awk '{ORS=(NR%2?"":"\n")}1' file
row1-col1;row1-col2;
row2-col1;row2-col2;
于 2013-03-07T23:40:24.967 に答える