将文件中的非 ASCII 字符替换为空格

将文件中的非 ASCII 字符替换为空格

我使用以下命令来替换非 ASCII 字符、单引号和不可打印字符:

sed -i -e "s/'//g" -e's/'//g' -e's/[\d128-\d255]//g' -e's/\x0//g' filename

但是,我收到错误:

sed: -e expression #3, char 18: Invalid collation character

我怎样才能替换这些字符?

答案1

试试这样:

LANG=iso-8859-1 sed -i -e"s/'//g" -e's/'//g' -e's/[\d128-\d255]//g' -e's/\x0//g' 

或者您可能会发现这很有用(将替换不可打印的单引号):

sed -i 's/[^[:print:]]//;s/'\''//g;s/'//g' filename

相关内容