我有一个仅包含网址的日志文件。这是一个巨大的文件,该文件包含超过 3+ lac 行。每一行的 url 之间都有一些值。例如,我给出了一些行,请检查附加的图像。
这里,在前 3 行中,“/code/”后面有一个值,称为“DMADCCA...” 从第四行开始,“/catalogue/”后面有一个值,称为“APA01” 像这样有很多线caotaine在不同的地方有不同的值。 我需要做的是使用 perl 脚本将这些值替换为字符串“SSSS” 有人可以帮我吗?
这可能对你有用(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
。