如何匹配和删除模式中的字符串

时间:2017-12-15 21:10:48

标签: regex awk sed

我正在尝试删除与模式匹配的常量字符串。我可以通过awk匹配模式,是否有awk和sed的组合,或者只是awk可以删除字符串到位?

示例:

我需要匹配14日,15日和16日“|”符号并删除其间的内容。

之前

00000000,003377fdh,,BLUE,YELLOW,ORANGE,UANGTANG,||57000000|1250000000|2|ramp|CAR|||||||24000|11000|apples,12-15-2017

后:

00000000,003377fdh,,BLUE,YELLOW,ORANGE,UANGTANG,||57000000|1250000000|2|ramp|CAR||||||,12-15-2017

2 个答案:

答案 0 :(得分:0)

awk -F '|' -v 'OFS=|' '{$13 = $16; NF -= 3; print}' file

perl -F'\|' -ne 'splice(@F, 12, 3); print join("|", @F)' file

答案 1 :(得分:0)

你也可以试试这个sed

sed -E 's/(([^|]*\|){3})//5' infile