搜索文件中的特定值并使用 Perl 将其替换为字符串

问题描述 投票:0回答:1

我有一个仅包含网址的日志文件。这是一个巨大的文件,该文件包含超过 3+ lac 行。每一行的 url 之间都有一些值。例如,我给出了一些行,请检查附加的图像。example urlfile 20 lines is here

这里,在前 3 行中,“/code/”后面有一个值,称为“DMADCCA...” 从第四行开始,“/catalogue/”后面有一个值,称为“APA01” 像这样有很多线caotaine在不同的地方有不同的值。 我需要做的是使用 perl 脚本将这些值替换为字符串“SSSS” 有人可以帮我吗?

linux bash perl sed perlscript
1个回答
0
投票

这可能对你有用(GNU sed):

sed -E 's#(.*/(code|catalogue)/)[^/]*#\1SSSS#' file

使用贪婪和交替替换一行中最后一次出现

/code/
/catalogue/
之后的值。

可以插入/附加除

code
catalogue
之外的其他键,但是它们必须考虑贪婪的
.*
,它将它们限制为一行中最后一次出现此类事件,因此可能需要调整它们的顺序。

注意替换命令使用替代分隔符 (

#
)。

另外

tesseract OHfg9.png - -l eng 2>/dev/null|sed '/\S/!d' >file
提供了文本格式的测试数据
file

© www.soinside.com 2019 - 2024. All rights reserved.