1

我有很多静态的 url,要更改它们,我需要使用某种类型的应用程序或脚本。我有大约 400 个文件,每个文件的 url 范围为 15-150。

这是我正在尝试做的一个例子:

Change:
<td class="SELECTX"><strong>Text example 1 <a href=""></a>Text Example 2 </strong></td>

To:
<td class="SELECTX"><strong> <a href=""></a>Text example 1 Text Example 2 </strong></td>

我希望有一种方法可以一次更改所有文件,但如果我不能,那么至少有一种方法可以更改一个文件上的所有 url,而无需手动剪切和粘贴。

我搜索了3个多小时,一无所获……希望有人能提供帮助。

编辑:基本上我试图找到之间的文本/字符串,<strong然后<a href="Text example 1"其移动到""></a>. 现在会在之前"Text Example 2"

4

3 回答 3

0

要查找两个(或)标记之间的字符串,我可能只使用正则表达式来查找文件中字符串的位置,然后处理脚本中的每个字符串/行。

然后也许对于每一行,找到开始标签和结束标签,这会给我需要交换的字符串部分的索引,并沿着开始标签的索引交换两部分。

于 2012-11-07T03:29:29.697 回答
0

请检查它是否完全适合您的需要

    String s = "<td class=\"SELECTX\"><strong>Text example 1 <a href=\"\"></a>Text Example 2 </strong></td>";
    s = s.replace("<a href=\"\"></a>", " ").replace("<strong>", "<strong><a href=\"\"></a>");
于 2012-11-07T03:37:37.337 回答
0
#!/bin/bash 
while read line
do
     x=`echo $line |grep -o "strong>.*<a" | sed 's/strong>//' |sed 's/<a//'`
     y=`echo $line |grep -o "a>.*</strong" | sed 's/a>//' |sed 's/<\/strong//'`
     z=`echo $line| sed 's/'"$x"'//' |sed 's/'"$y"'/'"$x $y"'/'`
    echo $z
done < a.txt

将此脚本的输出附加到另一个文件,这将是您的预期输出。您可以放置​​一个 for 循环来迭代该目录中的所有文件。

如果你想在java中复制它,这里是逻辑。

字符串 X = "文本示例 1"

字符串 Y = "文本示例 2"

字符串 Z = X+(连接)+ Y

将“文本示例 1”替换为“”

用字符串 Z 替换“文本示例 2”。

于 2012-11-07T03:41:09.810 回答