Я пытаюсь написать команду sed, которая добавляет один пробел по обе стороны от оператора && (AND). Вот что у меня есть:
sed -E 's+(\&\&)|(\s*\&\&\s*)+ & +g test.c
Первое условие отсутствия пробелов вокруг && работает, поэтому
if(numberIn==0&&char=='g')
становится
if(numberIn==0 && char=='g')
Но второе условие 1 или более пробелов не работает. Так что
if(numberIn==0 && char=='g')
не меняется.
Шаблон \s*OPERATOR\s*
работал с другими бинарными операторами, поэтому я не уверен, почему он не работает с оператором and. Я что-то упускаю из-за использования sed в операторе and? С первым условием я заметил, что если вы замените его на «&&», вы получите «&& &&», поэтому заменяющим шаблоном будет «&». (Это не относится к операторам OR или EQUALS).
Любые советы будут оценены.