2012-11-07 42 views
1

我有很多可悲的靜態URL,要改變它們我需要使用某種類型的應用程序或腳本..我有大約400個文件,URL範圍從15每個-150。找到2點之間的字符串和另一個2點之間的移動

這裏是什麼,我試圖做一個例子:

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

要找到兩個(或)標籤之間的字符串我可能只是使用正則表達式來查找字符串在文件中的位置,然後在腳本中處理每個字符串/行。

然後,也許對於每一行,找到開始標記和結束標記,它們會給出需要交換的字符串部分的索引,並將這2個部分沿着開始標記的索引交換。

+0

我給出的例子有所有的字符串/文本存在,我只是沒有包含示例文本,因爲它總是不同的,並且對於在&move之間的大量查找沒有用處。 – Bassam

+0

哦,我的回答在發帖時丟失了幾個字。但是,是的,我想到了A標籤內的URL和示例文本會有所不同(並且是任意長度),這就是爲什麼我會沿着「強」和「A」開始和結束標籤進行搜索(因爲這些應該是相同?)。 – mitim

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>"); 
-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」 ''

替換「文本示例2」字符串Z.

+0

似乎這會工作,但不要問一個愚蠢的問題。我將如何去執行這個?是否有辦法在同一頁上發佈結果? 順便說一句我正在使用Linux服務器,如果這有所作爲。 – Bassam

+0

它是一個shell腳本。複製所有這些行並將其放在名爲b.sh的文件中。不要忘記將a.txt更改爲您的輸入文件。 轉到終端 chmod + x b.sh ./b.sh >> outputfile.txt 現在輸出file.txt包含被替換的字符串,或者您可以將sed -i放入腳本中以更改輸入文件本身。 – Konza

+0

此答案的唯一問題是它不是此問題中標記的語言之一。你還假定Bassam有一臺Linux機器(或者一臺可以執行這些命令的機器),儘管他從未表示他正在運行Linux或Windows。我不會在Fortran中爲PDP11提供答案,因爲即使OP確實詢問「這是可能的」,它也可以工作。 – kurtzbot

相關問題