我想在文件中将kAbcdedf
替换为abcdef
。我尝试使用sed命令。一些建议说,如果我输入这个命令
echo 'abc'|sed 's/^../\u&/'
结果将是
Abc
但是在macOS上(使用zsh),结果是
uabc
有没有人知道使用sed命令切换案例的正确方法?
如何搜索kAbcd
,然后将该字符串替换为abcd
,即删除k
并将k
后的下一个字母大写?
答案 0 :(得分:2)
this
$ # 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
修饰符替换行中的所有此类实例如WiktorStribiżew在评论中所述,另请参阅:How to use GNU sed on Mac OS X