執行某些命令我看起來像這樣的文件:SED - 無法在UTF-8編碼字符
<text top="123" left="45" width="50" height="17" font="8">Måndag</text>
爲題所提到的,這個文件是UTF-8編碼。當使用這個命令時:
cat file | sed 's_.*top="\([0-9][0-9]*\)" left="\([0-9][0-9]*\)".*>\(.*\)<.*_\1 \2 \3_'
它永遠不會完成執行並且什麼都不打印。
但是執行這樣一行一個:
cat file | sed 's/å/FOO/'
給我一個正確的輸出:
<text top="123" left="45" width="50" height="17" font="8">MFOOndag</text>
這是一個錯誤的SED還是有我的正則表達式或方式什麼事是我正在使用它?我想要的是一種簡潔的方式來提取頂部,左側和內容數據,而不涉及太多的命令。
如果'sed'沒有在該命令上完成,無論輸入如何,它看起來像一個錯誤。你在運行什麼操作系統(名稱,分發版本)?如果你運行'
Gilles
2011-04-18 22:23:35
我正在使用最新版本的OS X(10.6.6)。不知道如何檢查bash中的語言環境,但'echo $ LANG'會給出'sv_SE.UTF-8'。我可能不得不學習另一種語言,比如進一步下去的tchrist所建議的perl語言。到那時,我會用一個醜陋的解決方案解決這個問題。 – Shump 2011-04-18 23:07:00
'od -t x1 file'的輸出: '0000000 3c 74 65 78 74 20 74 6f 70 3d 22 31 32 33 22 20 0000020 6c 65 66 74 3d 22 34 35 22 20 77 69 64 74 68 3d 3d 0000040 22 35 30 22 20 68 65 69 67 68 74 3d 22 31 37 22 0000060 20 66 6f 6e 74 3d 22 38 22 3e 4d c3 a5 6e 64 61 0000100 67 3c 2f 74 65 78 74 3e 0a 0000111' – Shump 2011-04-18 23:07:44