如何使用 hd -c 修复 sed 的连字符

问题描述 投票:0回答:1

我有一个包含以下输出的文件(c.txt)。这只是大文件中的一项。

7,VE,Bank–Charges

我正在尝试跑步:

sed -i 's/-/ - /g' c.txt

获得所需的输出:

7,VE,Bank – Charges

这不起作用。 请注意,还有许多其他连字符组合,例如车辆-维护等。

我已运行以下命令来了解问题:

cat c.txt | head -n2 | tail -n1 | hd -c

00000000  37 2c 56 45 2c 42 61 6e  6b e2 80 93 43 68 61 72  |7,VE,Bank...Char|
0000000   7   ,   V   E   ,   B   a   n   k 342 200 223   C   h   a   r
00000010  67 65 73 0a                                       |ges.|
0000010   g   e   s  \n                                                
0000014

由此可以清楚地看出,连字符实际上由 3 个字符组成 (342 200 223)。所以我的问题是如何编写一个 sed 命令来修复文件中存在很多连字符的所有连字符实例?或者 sed 在这里可用还是还有其他更有用的选项?

sed hexdump
1个回答
0
投票

感谢赛勒斯(Cyrus),我能够解决这个问题。

cat c.txt | sed -i 's/\xe2\x80\x93/ - /g'
© www.soinside.com 2019 - 2024. All rights reserved.