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

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

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

XSS:如何从 C# 中的字符串中删除 JS 片段?

如果字符串匹配,如何删除一行

如何匹配模式并从多行字符串中删除整行

如何从redis-cli repl中删除Redis匹配模式中的所有键?

如何删除与 Redis 集群中的模式匹配的键

R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串str_remove_all函数删除所有模式匹配的字符串