需要創建一個awk
腳本以將glyph
(https://en.wikipedia.org/wiki/Glyph)轉換爲Unicode
(JavaScript
語法),並將Unicode轉換爲字形。使用awk,如何用另一個字符串替換一個字符串?
源數據以UTF-8
編碼存儲在NotePad++
中。
這是我的進步。
Use_case_1
詞典文件(dict_1_.txt):
A \u0041
À \u00C0
輸入文件(input_1_.txt):
A
À
awk
腳本用於生成的Unicode等同於g lyph:
awk 'NR == FNR { a[$1] = $2; next } $1 in a { $1 = a[$1] } $2 in a { $2 = a[$2] } 1' dict_1_.txt input_1_.txt
正確製造:
\u0041
\u00C0
Use_case_2
詞典文件(dict_2_.txt)
\u0041 A
\u00C0 À
輸入文件(input_2_.txt)
\u0041
\u00C0
awk
腳本用於生成字形爲等效的Unicode:
awk 'NR == FNR { a[$1] = $2; next } $1 in a { $1 = a[$1] } $2 in a { $2 = a[$2] } 1' dict_2.txt input_2.txt
正確製造:
A
À
所以,可以在成功地 「往返」單個符號。
但是,如何處理更全面的字典和每行多個字?
以下是樣本數據。
輸入文件(input_3_.txt)
PUDÍN, ALMIDÓN
詞典文件(dict_3_。TXT)
, \u002C
A \u0041
D \u0044
I \u0049
Í \u00CD
L \u004C
M \u004D
N \u006E
Ó \u00D3
P \u0050
U \u0055
<space> \u0020
的awk
腳本應該產生:
\u0050\u0055\u0044\u00CD\u006E\u002C\u002C\u0041\u004C\u004D\u0049\u0044\u00D3\u006E
輸入文件(input_4_.txt)
\u0050\u0055\u0044\u00CD\u006E\u002C\u002C\u0041\u004C\u004D\u0049\u0044\u00D3\u006E
字典文件(dict_4_.txt)
\u002C ,
\u0041 A
\u0044 D
\u0049 I
\u00CD Í
\u004C L
\u004D M
\u006E N
\u00D3 Ó
\u0050 P
\u0055 U
\u0020 <space>
的awk
腳本應生成:
PUDÍN, ALMIDÓN
下面是一個更復雜的設定輸入的字符串(每行一個):
MONO Y DIACETIL ÉSTERES DEL ÁCIDO TARTÁRICO DE MONO Y DIGLICÉRIDOS DE ÁCIDOS GRASOS AÑADIDOS
043 HUEVAS DE PESCADO (INCLUYENDO ESPERMA=HUEVAS BLANDAS) Y VÍSCERAS COMESTIBLES DE PESCADO
ACEITE DE SOJA OXIDADO TÉRMICAMENTE Y EN INTERACCIÓN CON MONO Y DIGLICÉRIDOS DE ÁCIDOS GRASOS
BANDEJA PLÁSTICA O CAZUELA, CUBIERTA DE PAPEL DE ALUMINIO O ENVOLTURA
在上面的解釋實施例中,已經使用<space>
指示'符號'之間和逗號後。這可能意味着在Dictionary文件和輸入文件中解決方案應該使用\t
代替FS
。目前FS
是鍵盤「空間」。 RS
也是\n
。
此外,我需要做爲十六進制相同的,所以一個解決方案需要處理詞典文件是這樣的:相比於上述字典示例
Í Í
Ó Ó
:
Í \u00CD
Ó \u00D3
如何改進或替換我的簡單awk
腳本與處理多行更長的字符串的腳本?
哇。這個問題太長了。如何縮短它? – NinjaGaiden
問題是:'如何用多行處理較長字符串的腳本來改進或替換我簡單的awk腳本?'。文本顯示了進度(MCV)和希望可以通過建議的解決方案處理的數據。 –