Как указывает @steeldriver, это легко, если у вас не жадные регулярные выражения. Если нет, вы можете сделать это с помощью цикла, например:
sed ':a;s/PATTERN-2/\n/;s/PATTERN-1.*\n//;ta' test.txt
Это работает, потому что мы знаем, что в середине любой строки нет новых строк. Он также будет работать с любым другим символом, который не встречается ни в одной строке, например §
.
Первое, что нужно понять, что bicon - это виртуальная оболочка, поэтому вам нужно дважды выйти: один из bicon и один из bash.
Итак, чтобы избежать двойного выполнения команды .bashrc
, вы должны поместить команду, включающую bicon, в начало .bashrc
.
Также, чтобы избежать двойного выхода, вы можете сделать:
alias exit='kill -9 $(ps -p $PPID -o ppid=)'
Попробуйте запустить bicon.bin
с exec bicon.bin
, возможно, с аргументами для запуска оболочки в качестве оболочки входа.
Когда вы запускаете bicon.bin
, он порождает оболочку, поэтому теперь у вас есть (1) исходная оболочка, (2) bicon.bin
и (3) оболочка, порожденная bicon.bin
. Первый exit
выходит из оболочки, порожденной bicon.bin
, а второй exit
выходит из исходной оболочки. С exec
исходная оболочка заменяется на bicon.bin
, поэтому для завершения сеанса будет достаточно одного exit
.