我需要创建一个BASH脚本,理想情况下使用SED查找href
URL链接构造中的值列表,并用HTML sit文件替换这些值列表,查找具有给定URL构造的映射(旧值到新值)。有大约25K个站点文件需要浏览,地图上有大约6000个条目需要我搜索。你知道吗
所有新旧值都有6位数字。你知道吗
URL构造为:
一个值:HREF=".*jsp\?.*N=[0-9]{1,}.*"
值列表:HREF=".*\.jsp\?.*N=[0-9]{1,}+N=[0-9]{1,}+N=[0-9]{1,}...*"
值列表由+
加符号分隔,列表的长度可以是1
到n
个值。你知道吗
我想忽略这样一个构造:
HREF=".*\.jsp\?.*N=0.*"
即列表只有N=0
实际上,我只对包含文件映射中的一个或多个值的URL感兴趣,这些值前面没有CHANGED
——即列表需要更新。你知道吗
请注意:在上面的构造示例中:.*
表示任何不是数字的字符;我只对N=
之后的值列表中的任何6位值感兴趣;因此我尝试将N=
列表与URL构造的其余部分隔离开来,需要注意的是,这个N=
列表可以出现在这个URL结构中的任何地方。你知道吗
最初,我想创建一个脚本,该脚本将创建满足上述条件的所有链接的报告,并且地图文件中有一个6位数的旧值及其文件路径,以了解受影响的链接。例如:
Filename link filea.jsp /jsp/search/results.jsp?N=204200+731&Ntx=mode+matchallpartial&Ntk=gensearch&Ntt= filea.jsp /jsp/search/BROWSE.jsp?Ntx=mode+matchallpartial&N=213890+217867+731& fileb.jsp /jsp/search/results.jsp?N=0+450+207827+213767&Ntx=mode+matchallpartial&Ntk=gensearch&Ntt=
最后,我希望尽可能高效地查找和替换URL构造列表中的所有6位数字,如上所述(我希望速度相当快,因为可能有大约25K个文件,需要查找6K个值,列表中可能有多个值)。你知道吗
**请注意:*在查找和替换时,我遇到的另一个问题是,旧值可能被分配了一个新值,该值已被使用,也可能需要被替换。你知道吗
例如,如果地图文件如下所示:
MAP-FILE.txt OLD NEW 214865 218494 214866 217854 214867 214868 214868 218633 ... ...
还有一个HREF链接,例如:
/jsp/search/results.jsp?Ntx=mode+matchallpartial&Ntk=gensearch&N=0+450+214867+214868
214867
更改为214868
-需要预先标记此值已更改,并且不应替换,否则214867
将变为218633
,因为所有214868
都将更改为218633
。希望这是有意义的-然后我需要遍历文件并删除所有用前缀标记的6位数字,这样链接将变成:
/jsp/search/results.jsp?Ntx=mode+matchallpartial&Ntk=gensearch&N=0+450+214868CHANGED+218633CHANGED
除非有更好的方法来管理这些内嵌更改。你知道吗
有人能帮我一下吗?我是一个有这些变化的专家,所以非常感谢你的帮助。你知道吗
非常感谢,
亚历克斯
我将用某种伪代码来编写代码的大纲。我对Python的记忆不太好,无法用Python快速编写代码。你知道吗
首先找到它是什么类型(如果包含N=0,那么类型3,如果包含“+”,那么类型2,否则类型1),然后通过用“+”号分解(PHP函数名)得到包含“N=…”的字符串列表。你知道吗
第一个循环在链接上。第二个循环用于每个N=数字。第三个循环在map文件中查找替换值。在所有循环之前将映射文件的数据加载到一个变量。文件读取是编程中最慢的操作。 替换第三个循环中的值,然后在返回第一个循环时将新字符串列表内爆(PHP函数)到新链接。你知道吗
可能你有几个文件的链接,然后你需要另一个循环的文件。你知道吗
当处理重复的代码时,你需要一段时间的循环,直到找到备用号码。您需要保存列表中已经使用的号码。你知道吗
相关问题 更多 >
编程相关推荐