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

问题描述 投票:-5回答:2

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

要么

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

0
投票

你也可以试试这个sed

sed -E 's/(([^|]*\|){3})//5' infile
© www.soinside.com 2019 - 2024. All rights reserved.