如何去除图片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 :(如果dos2unix命令安装在Linux机器上)
dos2unix sample_file.txt
选项-2:
cat sample_file.txt | tr -d '\015' > new_sample_file.txt
在vi或者vim里面试试这个:
[在ESC模式下]键入::%s / ^ M // g
要么:
sed -e "s/^M//" filename > newfilename
重要提示 :要输入^ M,请输入CTRL-V,然后按CTRL-M