jxn
jxn

Reputation: 8035

awk remove substring using regex

i have a pipe delimited file that looks like this:

34ab1 | aaa bbb   ccc   fff  vf | 2015-01-01
35ab1 | aaa bbb   ccc dddefd ddff  ssss   fff  vi | 2015-01-01

i want to replace everything that starts with bbb and ends with fff.

i used this:

BEGIN {
    FS = OFS = "|"
}
{
   sub(/[0-9].*[0-9]/, "", $2); sub(/bbb.*fff/, "", $2);
   print
}

the regex part for the numbers worked but the second part of the regex didnt.

output i want:

34ab1 | aaa   vf | 2015-01-01
35ab1 | aaa   vi | 2015-01-01

Upvotes: 1

Views: 1063

Answers (1)

Avinash Raj
Avinash Raj

Reputation: 174806

Use a single gsub function for both.

BEGIN {
    FS = OFS = "|"
}
{
gsub(/[0-9].*[0-9]|bbb.*fff/, "", $2);
print
}

Upvotes: 2

Related Questions