Раздражающее поведение сенсорной панели Elantech в режиме мультитач на Linux Mint 20.2 Cinnamon

Решение sed:

sed -nEe '/\[(prod|dev)_env]/!d;N;:loop' -e 's/.*\n//;${p;d;};N;P;/\n\[/D;bloop' hosts.yml
  • /\[(prod|dev)_env]/!dотбрасывает все строки до тех пор, пока [prod_env]или [dev_env]не будут найдены
  • N;:loopдобавляет следующую строку и запускает цикл
  • внутри цикла мы удаляем первую из двух строк с s/.*\n//, потому что это либо строка [...env], либо мы уже напечатали ее в последнем цикле цикла
  • ${p;d;}печатает оставшиеся строки, если мы достигли последней строки при печати
  • N;Pдобавляет следующую строку и печатает текущую
  • /\n\[/Dпроверяет, начинается ли следующая строка с [. В этом случае первая строка в буфере (, уже напечатанная ), может быть отброшена, и мы начнем с этой строки [
  • .
  • bloopиначе петля

Вместо того, чтобы добавлять в буфер следующую строку, печатать и удалять старую, можно пройти построчно, но для этого потребуется еще один цикл, потому что нельзя начать заново сD

1
22.07.2021, 09:41
0 ответов

Теги

Похожие вопросы