如何使用 sed 删除度数符号(M-0 又名上标零?)
How to remove degree symbol (M-0 aka superscript zero?) with sed
我有一个文件,其中包含温度以及我想要删除的度数符号。在 Notepad++ 中看起来像这样:
40238230,194°,47136
该符号不打印为普通 cat
:
40238230,194,47136
但是 cat -e
显示 M-0
其中符号是:
40238230,194M-0,47136
我怎样才能去掉那个符号?我认为以下 sed 会做到这一点(只包含数字和逗号),但不会:
sed -r 's/[^0-9\,]//g'
会不会是您没有将控制台设置为使用 Unicode?
学位符号是 Unicode °。在 UTF-8 中,这是 \xc2\xb0。因此,如果您的控制台未使用 Unicode,您将不得不替换这两个字节。
此处描述了 M- 表示法:。
M-0 is 0xb0
在启用了 Unicode 的控制台上,我得到:
$ cat foo
122 °C
$ cat -e foo
122 M-BM-0C$
现在用 sed 删除:Remove unicode characters from textfiles - sed , other bash/shell methods
我有一个文件,其中包含温度以及我想要删除的度数符号。在 Notepad++ 中看起来像这样:
40238230,194°,47136
该符号不打印为普通 cat
:
40238230,194,47136
但是 cat -e
显示 M-0
其中符号是:
40238230,194M-0,47136
我怎样才能去掉那个符号?我认为以下 sed 会做到这一点(只包含数字和逗号),但不会:
sed -r 's/[^0-9\,]//g'
会不会是您没有将控制台设置为使用 Unicode?
学位符号是 Unicode °。在 UTF-8 中,这是 \xc2\xb0。因此,如果您的控制台未使用 Unicode,您将不得不替换这两个字节。
此处描述了 M- 表示法:
M-0 is 0xb0
在启用了 Unicode 的控制台上,我得到:
$ cat foo
122 °C
$ cat -e foo
122 M-BM-0C$
现在用 sed 删除:Remove unicode characters from textfiles - sed , other bash/shell methods