nic*_*b96 2 text-editing regex sed command-line
我正在尝试创建一个 sed 命令,该命令将文本文件中的代词I大写。例如“我喜欢狗”。应该是“我喜欢狗”。 到目前为止,我有:
sed 's/ i / I /g'
Run Code Online (Sandbox Code Playgroud)
这在许多不同的场景中都不起作用。就像i周围有标点符号一样。
这是我认为该命令应该能够处理的场景列表:
g在最后放置标志来解决。小智 5
假设您使用的是 GNU sed,一种方法是
sed 's/\([[:space:]]\|[[:punct:]]\)i\([[:space:]]\|[[:punct:]]\)/\1I\2/g'
Run Code Online (Sandbox Code Playgroud)
或类似的东西。这仍然保留了以“我喜欢狗”开头的行的情况,因为代词之前没有空格。解决此问题的一种方法是
sed 's/\(^\|[[:space:]]\|[[:punct:]]\)i\([[:space:]]\|[[:punct:]]\)/\1I\2/g'
Run Code Online (Sandbox Code Playgroud)
当你在“ii”中有连续的“i”时,这种情况仍然存在,但我想不出为什么会在英文文本中出现这种情况,除非当正确的短语是“aye”时错误地写了“ii sir”好的,先生'。
如果您还使用小写罗马数字,也会有粗糙的边缘。sed 脚本无法判断 'i' 是代词还是罗马数字,但确实没有好的解决方案。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |