3
3
[ # ] : author: " Seth Kenlon https://opensource.com/users/seth "
4
4
[ # ] : collector: " lujun9972 "
5
5
[ # ] : translator: " geekpi "
6
- [ # ] : reviewer: " "
7
- [ # ] : publisher: " "
8
- [ # ] : url: " "
6
+ [ # ] : reviewer: " wxy "
7
+ [ # ] : publisher: " wxy "
8
+ [ # ] : url: " https://linux.cn/article-13806-1.html "
9
9
10
10
用 Linux sed 命令替换智能引号
11
11
======
12
- 用你喜欢的 sed 版本去除“智能”引号。
13
- ![ Coding on a computer] [ 1 ]
14
12
15
- In typography, a pair of quotation marks were traditionally oriented toward one another. They look like this:
13
+ > 用你喜欢的 sed 版本去除“智能”引号。
14
+
15
+ ![ ] ( https://img.linux.net.cn/data/attachment/album/202109/21/151406chun5nyumy8wyu5y.png )
16
+
16
17
在排版学中,一对引号传统上是朝向彼此的。它们看起来像这样:
17
18
18
19
“智能引号”
19
20
20
- 随着计算机在二十世纪中期的普及,这种方向往往被放弃了 。计算机的原始字符集没有太多的空间,所以在 ASCII 规范中,两个双引号和两个单引号被缩减为各一个是合理的。如今,通用的字符集是 Unicode,有足够的空间容纳许多花哨的引号和撇号,但许多人已经习惯了开头和结尾引号都只有一个字符的极简主义。此外,计算机实际上将不同种类的引号和撇号视为不同的字符。换句话说,对计算机来说,右双引号与左双引号或直引号是不同的。
21
+ 随着计算机在二十世纪中期的普及,这种朝向往往被放弃了 。计算机的原始字符集没有太多的空间,所以在 ASCII 规范中,两个双引号和两个单引号被缩减为各一个是合理的。如今,通用的字符集是 Unicode,有足够的空间容纳许多花哨的引号和撇号,但许多人已经习惯了开头和结尾引号都只有一个字符的极简主义。此外,计算机实际上将不同种类的引号和撇号视为不同的字符。换句话说,对计算机来说,右双引号与左双引号或直引号是不同的。
21
22
22
23
### 用 sed 替换智能引号
23
24
24
25
计算机并不是打字机。当你按下键盘上的一个键时,你不是在按一个带有印章的控制杆。你只是按下一个按钮,向你的计算机发送一个信号,计算机将其解释为一个显示特定预定义字符的请求。这个请求取决于你的键盘映射。作为一个 Dvorak 打字员,我目睹了人们在发现我的键盘上的 “asdf” 在屏幕上产生 “aoeu” 时脸上的困惑。你也可能按了一些特殊的组合键来产生字符,如 ™ 或 ß 或 ≠,这甚至没有印在你的键盘上。
25
26
26
- 每个字母或字符,不管它是否印在你的键盘上,都有一个编码。字符编码可以用不同的方式表达,但对计算机来说,Unicode 序列 u2018 和 u2019 产生 ** ‘ ** 和 ** ’ ** ,而代码 u201c 和 u201d 产生 ** “ ** 和 ** ” ** 字符。知道这些“秘密”代码意味着你可以使用 [ sed] [ 2 ] 这样的命令以编程方式替换它们。任何版本的 sed 都可以,所以你可以使用 GNU sed 或 BSD sed,甚至是 [ Busybox] [ 3 ] sed。
27
+ 每个字母或字符,不管它是否印在你的键盘上,都有一个编码。字符编码可以用不同的方式表达,但对计算机来说,Unicode 序列 u2018 和 u2019 产生 ` ‘ ` 和 ` ’ ` ,而代码 u201c 和 u201d 产生 ` “ ` 和 ` ” ` 字符。知道这些“秘密”代码意味着你可以使用 [ sed] [ 2 ] 这样的命令以编程方式替换它们。任何版本的 sed 都可以,所以你可以使用 GNU sed 或 BSD sed,甚至是 [ Busybox] [ 3 ] sed。
27
28
28
29
下面是我使用的简单的 shell 脚本:
29
30
30
-
31
31
```
32
32
#!/bin/sh
33
33
# GNU All-Permissive License
@@ -39,15 +39,13 @@ $SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"
39
39
40
40
将此脚本保存为 ` fixquotes.sh ` ,然后创建一个包含智能引号的单独测试文件:
41
41
42
-
43
42
```
44
43
‘Single quote’
45
44
“Double quote”
46
45
```
47
46
48
47
运行该脚本,然后使用 [ cat] [ 4 ] 命令查看结果:
49
48
50
-
51
49
```
52
50
$ sh ./fixquotes.sh test.txt
53
51
$ cat test.txt
@@ -68,7 +66,7 @@ via: https://opensource.com/article/21/9/sed-replace-smart-quotes
68
66
作者:[ Seth Kenlon] [ a ]
69
67
选题:[ lujun9972] [ b ]
70
68
译者:[ geekpi] ( https://github.com/geekpi )
71
- 校对:[ 校对者ID ] ( https://github.com/校对者ID )
69
+ 校对:[ wxy ] ( https://github.com/wxy )
72
70
73
71
本文由 [ LCTT] ( https://github.com/LCTT/TranslateProject ) 原创编译,[ Linux中国] ( https://linux.cn/ ) 荣誉推出
74
72
0 commit comments