[英]How to remove all special characters in Linux text
如何刪除圖片1中顯示為藍色的特殊字符,如:^ M,^ A,^ @,^ [。 根據我的理解,^ M是一個windows換行符,我可以使用
sed -i '/^M//g'
刪除它,但它不能刪除其他人。 命令dos2unix
也不起作用。 是否有任何方法可以用來刪除它們?
刪除除可打印字符(字符類[:print:]
)以外的所有內容,使用sed
:
sed $'s/[^[:print:]\t]//g' file.txt
[:print:]
包括:
[:alnum:]
(alpha-numerics) [:punct:]
(標點符號) ANSI C引用( $''
)用於將\\t
解釋為$''
內的文字選項卡(以bash
和類似的方式)。
要確保命令在Sed中使用有限的范圍,強制使用“C”(POSIX)字符分類以避免使用非ASCII字符的不可預測的行為:
LC_ALL=C sed 's/[^[:blank:][:print:]]//g' file.txt
嘗試在linux命令提示符下運行以下命令
選項 - 1 :(如果在Linux機器上安裝了dos2unix命令)
dos2unix sample_file.txt
選項-2:
cat sample_file.txt | tr -d '\015' > new_sample_file.txt
在vi或vim中嘗試這個:
要么:
sed -e "s/^M//" filename > newfilename
重要說明 :要輸入^ M,請鍵入CTRL-V,然后鍵入CTRL-M
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.