English 中文(简体)
拆除两条插图之间的所有线
原标题:Remove all lines between two strings

印有纸面。

根据文本档案中的数据:

string1  
string2 gibberish  
gibberish  
string3 gibberish  
string4  

• 如何利用k子或ed子去除string2(包括)和string3之间的所有线。 (不包括string3?)

最后:

string1  
string3  
string4  
最佳回答

你可以尝试这样做。 “指示2”之前的任何内容都不会删除。

awk  BEGIN{f=0}
{
    match($0,"string2")
    if(RSTART){
        print substr($0,1,RSTART-1)
        f=1
        next
    }
    match($0,"string3")
    if(RSTART){
        $0=substr($0,RSTART)
        f=0
    }
}
f==0{print}
  file

产出

$ cat file
string1 blah blah
text before string2 junk
gibberish
gibberis string3 text here
string4

$ ./shell.sh
string1 blah blah
text before
string3 text here
string4
问题回答

Are string1, string2,string3, etc. each on different lines? In that case, you can use awk:

awk  /string2/{flag=1} /string3/{flag=0} !flag 

或者说:

sed  /string3/p; /string2/,/string3/d 

将在上开展工作。

sed   
/string2/,/string3/bdeleting
b
:deleting
s/string3.*/string3/
/string3/b
d
 

假设我们在string3后首次出现string3><>>

这里的样本是:

s/string2.*?(?=string3)//sg

将把所有东西从<条码>中删除。 最多但不包括<代码>string3。





相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签