【发布时间】:2021-12-20 11:16:51
【问题描述】:
我正在从终端运行命令。我使用 zsh 作为我的外壳。我的目标是在此目录和所有子目录中的所有 txt 文件中用 ' 替换所有 ’ 实例。
我有一个包含以下文本的文件:
这是一个测试:'
当我运行以下命令时
for file in *.txt(.); tr \’ \' < $file | sponge $file
文件是这样结束的
这是一个测试:'''
替换有效,但它发生了 3 次。这似乎不是海绵的问题,但在使用 tr 时会发生。
我做错了什么?
【问题讨论】:
-
我无法重现这一点,但我怀疑您的
tr版本不支持多字节字符(’在 UTF-8 中用三个字节表示)。这里有更多信息:unix.stackexchange.com/a/228570/432774