如何使用perl / shell脚本替换文本?

时间:2013-02-27 01:19:04

标签: replace sed

我有一种模式

cat sample.text

\newline</Text>

我正在使用以下命令:

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

但是以下命令无效。

3 个答案:

答案 0 :(得分: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

同样有效。

答案 1 :(得分:2)

您是否只是想在</Text>之前摆脱换行符?这只是一个简单的替代:

gawk -vRS='\0' -vORS= '{gsub(/\n<\/Text>/,"</Text>")}1' file

答案 2 :(得分:0)

我自己找到了解决方案,所以想与大家分享。

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