我有很多令人遗憾的静态网址,要更改它们我需要使用某种类型的应用程序或脚本..我有大约400个文件,每个网址的网址范围为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>
我希望能够同时在所有文件上更改此功能,但如果我不能,那么至少可以在1个文件中更改所有网址,而无需手动剪切和粘贴。
我搜索并搜索了超过3个小时,一无所获......我希望有人可以提供帮助。
编辑:
基本上我正在尝试在<strong
和<a href=
之间找到"Text example 1"
之间的文本/字符串,然后将其移到""></a>
之后。现在将在"Text Example 2"
答案 0 :(得分:0)
要找到两个(或)标记之间的字符串,我可能只是使用正则表达式来查找字符串在文件中的位置,然后处理脚本中的每个字符串/行。
然后可能对于每一行,找到开始标记和结束标记,它将为我提供需要交换的字符串部分的索引,并在开始标记的索引处交换2个部分。
答案 1 :(得分: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>");
答案 2 :(得分:-1)
#!/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”。