0

私は1つのパターンを持っています

cat sample.text

\newline</Text>

次のコマンドを使用しています。

sed ':a; N; $!ba; s|\newline</Text>|</Text>|g' sample.text

しかし、次のコマンドは機能していません。

4

3 に答える 3

2

これはあなたのために働くかもしれません(GNU sed):

sed '$!N;s/\n\(<\/Text>\)/\1/;P;D' file

また

sed -r '$!N;s|\n(</Text>)|\1|;P;D' file

ただし、\newlineがリテラルの場合:

sed 's/\\newline\(<\/Text>\)/\1/g' file

また

sed -r 's|\\newline(</Text>)|\1|g' file

同様に機能します。

于 2013-02-27T07:51:16.780 に答える
2

以前に改行を削除しようとしているだけ</Text>ですか?これは単純な置換です。

gawk -vRS='\0' -vORS= '{gsub(/\n<\/Text>/,"</Text>")}1' file
于 2013-02-27T14:53:12.597 に答える
0

私は自分で解決策を見つけたので、みんなと共有しようと思いました。

 sed ':a; N; $!ba; s|\\newline<\/Text>|</Text>|g' sample.text
于 2013-02-27T06:50:04.297 に答える