首页 > 解决方案 > 如何使用 sed 命令切换案例?

问题描述

我想在文件中替换kAbcdedfabcdef。我尝试使用 sed 命令。一些建议说,如果我输入这个命令

echo 'abc'|sed 's/^../\u&/'

结果将是

Abc

但在 macOS(使用 zsh)上,结果是

uabc

有谁知道使用 sed 命令切换案例的正确方法?

如何搜索kAbcd然后用 替换该字符串abcd,即删除k后面的下一个字母并将其大写k

标签: regexmacossed

解决方案


$ # with GNU sed
$ echo 'kAbcd' | sed -E 's/k(.)/\l\1/'
abcd

$ # with perl if GNU sed is not available
$ echo 'kAbcd' | perl -pe 's/k(.)/\l$1/'
abcd
  • \l将小写给定参数的第一个字符
  • 使用g修饰符替换一行中的所有此类事件

正如 Wiktor Stribiżew 在评论中提到的,另请参阅:如何在 Mac OS X 上使用 GNU sed


推荐阅读