Я нахожусь в Linux (CentOS) и пытаюсь захватить что-то, похожее на
This, formatting | is, 123gh234ee2, {absolutely}, [ positively | obnoxious | in ], {every}, [ {single} | {way} ],, Thanks | For your | Help!
Я хочу заменить все каналы |, но только те, которые находятся внутри [].Итак ...
This, formatting | is, 123gh234ee2, {absolutely}, [ positively ; obnoxious ; in ], {every}, [ {single} ; {way} ],, Thanks | For your | Help!
Я пробовал несколько выражений, но, как мне кажется, должно работать, не работает.Может кто-нибудь объяснить, почему?
sed -i 's/(?<=\[)(\|)(?=\])/;/g' 'myFile.txt'
Моя идея заключалась в том, чтобы заглянуть в будущее с [101 *
(?<=\[)
. Познакомиться с
(?=\])
И захватитьтрубы с
(\|)
Однако в моем файле ничего не меняется, и я действительно не могу понять, что случилось.
Спасибо!
Чтобы уточнить,Я также попробовал метод perl
cat '/myFile.txt' | perl -ne 's/(?<=\[)(\|)(?=\])/xxxxx/g; print;'
И все равно не получил измененный результат.