Как переключать дела с помощью команды sed? - PullRequest
0 голосов
/ 08 мая 2018

Я хочу заменить kAbcdedf на abcdef в файле. Я пытаюсь использовать команду sed. Некоторые предложения говорят, если я введу эту команду

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

результат будет

Abc

но на macOS (используя zsh) результат равен

uabc

Кто-нибудь знает правильный способ переключения дел с помощью команды sed?

Как мне найти kAbcd, а затем заменить эту строку на abcd, т.е. удалить k и заглавную букву после следующей буквы k?

1 Ответ

0 голосов
/ 08 мая 2018
$ # 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 в комментариях, см. Также: Как использовать GNU sed в Mac OS X

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...