不確定這個問題是否已被問到,但基本上我想從包含特殊字符的file1中讀取並將它們改爲URL編碼版本。 file2是一個管道分隔的文檔,例如:#|%23。使用數組來改變bash中的行分隔文本文件
因此,當腳本從file1讀取「#」時,它會將其更改爲 「%23」。有174個不同的字符可以識別,因此如果 聲明不可行。
注:我寫這是bash的
我用類似awk或者sed,但是我不知道我會怎麼用文本文件中使用此考慮。
有什麼建議嗎?閱讀翻譯文件的文件之前,翻譯
不確定這個問題是否已被問到,但基本上我想從包含特殊字符的file1中讀取並將它們改爲URL編碼版本。 file2是一個管道分隔的文檔,例如:#|%23。使用數組來改變bash中的行分隔文本文件
因此,當腳本從file1讀取「#」時,它會將其更改爲 「%23」。有174個不同的字符可以識別,因此如果 聲明不可行。
注:我寫這是bash的
我用類似awk或者sed,但是我不知道我會怎麼用文本文件中使用此考慮。
有什麼建議嗎?閱讀翻譯文件的文件之前,翻譯
awk -F '|' '
FNR == NR { Trsl[ $1 ] = $2; next}
FNR != NR {
s0 = $0
for(Char in Trsl) {
Cnt = split(s0, a0, Char)
s0 = a0[ 1 ]
for(i = 2; i <= Cnt; i++) s0 = s0 Trsl[ Char] a0[ i]
}
print s0
}
' File2 File1
|
不
- >%20
和%
- >Percent
會給Percent20
爲原始
確保您可以控制替換訂單,如果先將#替換爲%23,然後將%替換爲%25,則將獲得%2523。 – karakfa
好點,OP應該指定想要的behviour。如果訂單很重要,我們應該使用2個數組而不是1個,並通過索引管理訂單 – NeronLeVelu
使用已經有處理URL編碼庫的語言。 – chepner
請包括您的輸入文件的正確樣本,以及您所期望的輸出和迄今爲止編寫的代碼。如果該代碼到達產出點,請包括這一點。這裏的人會很樂意幫助,但更好的問題是依賴更好的答案。 – ghoti
是的,對chepner的評論+1。雖然我懷疑你建議*可以做什麼,但另一個問題是它是否應該完成。聽起來好像你正在重新發明一個支持[XY問題]的輪子(http://mywiki.wooledge.org/XyProblem)。 – ghoti