如何删除图片1中显示为蓝色的特殊字符,如:^ M,^ A,^ @,^ [。根据我的理解,^ M是一个Windows换行符,我可以使用sed -i '/^M//g'
删除它,但它不能删除其他人。命令dos2unix
既不起作用也不起作用。是否有任何方法可以用来删除它们?
答案 0 :(得分:13)
使用[:print:]
删除除可打印字符(字符类sed
)以外的所有内容:
sed $'s/[^[:print:]\t]//g' file.txt
[:print:]
包括:
[:alnum:]
(alpha-numerics)[:punct:]
(标点符号) ANSI C引用($''
)用于将\t
解释为$''
内的文字标签(bash
中的{{ record.date|date("Y") }}
等)。
答案 1 :(得分:4)
为了确保命令在Sed中使用有限的范围,强制使用"C" (POSIX) character classifications以避免使用非ASCII字符的不可预测的行为:
LC_ALL=C sed 's/[^[:blank:][:print:]]//g' file.txt
答案 2 :(得分:2)
尝试在linux命令提示符下运行以下命令
选项 - 1 :(如果在Linux计算机上安装了dos2unix命令)
dos2unix sample_file.txt
选项 - 2:
cat sample_file.txt | tr -d '\015' > new_sample_file.txt
答案 3 :(得分:-1)
在vi或vim中尝试:
或:
select userid, customer, event_name, event_timestamp,
row_number() over (partition by user_id, customer_number
order by event_timestamp) as steps_rownum
from trackhist
order by userid, event_timestamp;
重要:要输入^ M,请键入CTRL-V,然后按CTRL-M