从文本文件中删除模式

从文本文件中删除模式

我有一个文件,里面充满了这样的东西:

-POEM-
>> The big brown fox
>> jumps over the
>> lazy dog.
The end.

我想摆脱“\n>>”并将其变成一行:

-POEM-
The big brown fox jumps over the lazy dog.
The end.

我正在尝试以下方法,但均不起作用:

perl -pe 's/\r?\n>>//g' task.tex
tr '\n\>\>' '' < task.tex 
sed -i ':a;N;$!ba;s/\n>>//g' task.tex 

我究竟做错了什么?

答案1

你为什么要这么费力?以下是我刚刚对你的文本所做的操作。

  1. 在 GEdit 中打开该文件。

  2. 将光标保持在第二行的开头

  3. 使用 CTRL + H(查找和替换)

  4. 查找>>并用 SPACE 替换

  5. 查找\n并用 SPACE 替换

确保在两种情况(4 和 5)中都使用了 REPLACE ALL。

这就是我所做的并且有效:)

答案2

假设文本位于名为的文件中x.txt

tr -d '\n>>' < x.txt | sed -e 's/-POEM-/&\n/' -e 's/\./&\n/g'

答案3

这对我有用:

当读取行时;执行
         line1 =`回显 $line`;
         如果 [ `echo $line1 | grep "^>" | wc -l` -eq 1 ];
         然后
                 var1 =`echo $line1 | sed's/^...//'`;
                 line2 =`回显 $line2 $var1`;
         别的
                 回显 $line2;
                 回显 $line1;
         科幻;
完成 < 任务.tex

相关内容