我在這里尋求一點幫助。我是一個完整的新手!
我需要在檔案中查找與模式 A00000_00_A 匹配的代碼并向其附加計數,因此第一次出現時將其替換為 A00000_00_A_001,第二次出現 A00000_00_A_002 等。輸出需要寫回同一個檔案。每個檔案只包含 1 個代碼,但它會出現多次。
經過一番挖掘,我發現-
perl -pi -e 's/Q\d{4,5}'_'\d{2}_./$&.'_'. $A /ge' /users/documents/*.xml
但問題是計數器不會在每個檔案中重置。
也就是說,第一個檔案的輸出是 Q00390_01_A_1 到 Q00390_01_A_7,而第二個檔案是 Q00391_01_A_8 到 Q00391_01_A_10。
我想要的是第一個檔案中的 Q00390_01_A_1 到 Q00390_01_A_7 和第二個檔案中的 Q00391_01_A_1 到 Q00391_01_A_2。
有沒有人知道如何編輯上面的代碼來做到這一點?我是一個完全的新手,所以理想情況下,對我所擁有的東西進行編輯會很棒。謝謝
uj5u.com熱心網友回復:
cd /users/documents/
for f in *.xml;do
perl -pi -e 's/facs=.(Q|M)\d{4,5}_\d{2}_\w/$&._.sprintf("d", $A) /ge' $f
done
這匹配字串facs=和任何字符,然后是“Q”或“M”,后跟四個或五個數字,然后是一個下劃線,然后是兩個數字,另一個下劃線和一個單詞字符。然后將整個匹配項與下劃線連接起來,并將 $A 的值零填充為四位數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/439350.html
上一篇:PerlTk格式化按鈕中的文本
