我試圖從我的文件中的記錄中刪除不可打印的字符(例如^@
)。由於使用cat的記錄體積太大,因爲循環花費的時間太長,所以不是一個選項。 我嘗試使用嘗試從UNIX文件中刪除不可打印的字符(垃圾值)
sed -i 's/[^@a-zA-Z 0-9`[email protected]#$%^&*()_+\[\]\\{}|;'\'':",.\/<>?]//g' FILENAME
但仍^@
字符不會被刪除。 我也嘗試過使用
awk '{ sub("[^a-zA-Z0-9\"[email protected]#$%^&*|_\[](){}", ""); print } FILENAME > NEW FILE
,但它也沒有幫助。
任何人都可以建議一些替代方法來刪除不可打印的字符?
使用tr -cd
但它是刪除重音字符。但它們在文件中是必需的。
使用哪種語言(unix參數)? – NeronLeVelu
已在unix框中創建了正常的/ bin/sh腳本。該腳本將運行一個包含2500萬條記錄的文件,並從數據庫獲取數據。但是這個腳本會忽略具有垃圾值的記錄。 – Pranav
如果您看到很多NULL(0x00,\ 0000)字符,則可能是某種多字節編碼。 **如果**是這種情況,那麼這些不是「垃圾」字符。 **我知道要檢查的最簡單的方法是將文件或其某些部分加載到'emacs'中。 –