我有一个以下格式的文件..
this is file data under the file 123�45
this is second line 123¿
我想要这样的o/p。
this is file data under the file 123045
this is second line 1230
源是源仅是 UTF-8...需要将每个 UTF-8 字符替换为零,如下行,
这是第 001122��33 行
,应该像下面这样替换:
这是第 0011220033 行
这是我用来手动执行的格式。
grep -P "[^\x00-\x7F]" filename
答案1
使用sed
:
LC_ALL=C sed -E 's/[^[:alnum:][:blank:]]+/0/g' < infile
将除A-Z
、a-z
、0-9
和Tab
之外的所有字符替换Space
为 0。添加您想要将它们保留在上面的字符类中的任何其他字符。
如果你的locate
是 UTF-8,请使用它来替换字符而不是字节。
LC_ALL='C.UTF-8' sed -E 's/[^[:alnum:][:blank:]]/0/g' < infile
答案2
使用tr
:
tr -sc '[:alnum:][:blank:]\n' 0
答案3
命令1:sed "s/[?*_><&%#@]/0/g" filename
output
this is file data under the file 123045
this is second line 1230
命令2:sed "s/[^a-z 0-9]/0/Ig" filename
输出
this is file data under the file 123045
this is second line 1230