Skip to content
This repository was archived by the owner on Apr 9, 2024. It is now read-only.

Commit 260fe98

Browse files
authored
Merge pull request #23315 from wxy/20210913-Replace-smart-quotes-with-the-Linux-sed-command
PRF&PUB:published/20210913 Replace smart quotes with the Linux sed command.md
2 parents 421fada + 6848679 commit 260fe98

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

translated/tech/20210913 Replace smart quotes with the Linux sed command.md published/20210913 Replace smart quotes with the Linux sed command.md

+10-12
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@
33
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
44
[#]: collector: "lujun9972"
55
[#]: translator: "geekpi"
6-
[#]: reviewer: " "
7-
[#]: publisher: " "
8-
[#]: url: " "
6+
[#]: reviewer: "wxy"
7+
[#]: publisher: "wxy"
8+
[#]: url: "https://linux.cn/article-13806-1.html"
99

1010
用 Linux sed 命令替换智能引号
1111
======
12-
用你喜欢的 sed 版本去除“智能”引号。
13-
![Coding on a computer][1]
1412

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+
1617
在排版学中,一对引号传统上是朝向彼此的。它们看起来像这样:
1718

1819
“智能引号”
1920

20-
随着计算机在二十世纪中期的普及,这种方向往往被放弃了。计算机的原始字符集没有太多的空间,所以在 ASCII 规范中,两个双引号和两个单引号被缩减为各一个是合理的。如今,通用的字符集是 Unicode,有足够的空间容纳许多花哨的引号和撇号,但许多人已经习惯了开头和结尾引号都只有一个字符的极简主义。此外,计算机实际上将不同种类的引号和撇号视为不同的字符。换句话说,对计算机来说,右双引号与左双引号或直引号是不同的。
21+
随着计算机在二十世纪中期的普及,这种朝向往往被放弃了。计算机的原始字符集没有太多的空间,所以在 ASCII 规范中,两个双引号和两个单引号被缩减为各一个是合理的。如今,通用的字符集是 Unicode,有足够的空间容纳许多花哨的引号和撇号,但许多人已经习惯了开头和结尾引号都只有一个字符的极简主义。此外,计算机实际上将不同种类的引号和撇号视为不同的字符。换句话说,对计算机来说,右双引号与左双引号或直引号是不同的。
2122

2223
### 用 sed 替换智能引号
2324

2425
计算机并不是打字机。当你按下键盘上的一个键时,你不是在按一个带有印章的控制杆。你只是按下一个按钮,向你的计算机发送一个信号,计算机将其解释为一个显示特定预定义字符的请求。这个请求取决于你的键盘映射。作为一个 Dvorak 打字员,我目睹了人们在发现我的键盘上的 “asdf” 在屏幕上产生 “aoeu” 时脸上的困惑。你也可能按了一些特殊的组合键来产生字符,如 ™ 或 ß 或 ≠,这甚至没有印在你的键盘上。
2526

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。
2728

2829
下面是我使用的简单的 shell 脚本:
2930

30-
3131
```
3232
#!/bin/sh
3333
# GNU All-Permissive License
@@ -39,15 +39,13 @@ $SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"
3939

4040
将此脚本保存为 `fixquotes.sh`,然后创建一个包含智能引号的单独测试文件:
4141

42-
4342
```
4443
‘Single quote’
4544
“Double quote”
4645
```
4746

4847
运行该脚本,然后使用 [cat][4] 命令查看结果:
4948

50-
5149
```
5250
$ sh ./fixquotes.sh test.txt
5351
$ cat test.txt
@@ -68,7 +66,7 @@ via: https://opensource.com/article/21/9/sed-replace-smart-quotes
6866
作者:[Seth Kenlon][a]
6967
选题:[lujun9972][b]
7068
译者:[geekpi](https://github.com/geekpi)
71-
校对:[校对者ID](https://github.com/校对者ID)
69+
校对:[wxy](https://github.com/wxy)
7270

7371
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
7472

0 commit comments

Comments
 (0)