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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何匹配和删除模式中的字符串相关的知识,希望对你有一定的参考价值。

我试图删除与模式匹配的常量字符串。我可以通过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
答案
awk -F '|' -v 'OFS=|' '{$13 = $16; NF -= 3; print}' file

要么

perl -F'|' -ne 'splice(@F, 12, 3); print join("|", @F)' file
另一答案

你也可以试试这个sed

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

以上是关于如何匹配和删除模式中的字符串的主要内容,如果未能解决你的问题,请参考以下文章