我有一个文件,其中包含温度以及我想要删除的度数符号。在 Notepad++ 中看起来像这样:
40238230,194°,47136
该符号不使用普通 cat
打印:
40238230,194,47136
但是 cat -e
显示 M-0
符号是:
40238230,194M-0,47136
我怎样才能去掉那个符号?我认为下面的 sed 会做到这一点(只包含数字和逗号),但不会:
sed -r 's/[^0-9\,]//g'
最佳答案
会不会是您没有将控制台设置为使用 Unicode?p>
学位符号是 Unicode °。在 UTF-8 中,这是\xc2\xb0。因此,如果您的控制台未使用 Unicode,则必须替换这两个字节。
此处描述了 M- 表示法:What is the "M- notation" and where is it documented? .
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
关于linux - 如何使用 sed 删除度数符号(M-0 又名上标零?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118814/