Первоначально init вызывал оболочку на консоли в однопользовательском режиме, а когда эта оболочка выходила, она вызывала программу login (на самом деле getty) на последовательных портах, наряду с монтированием остальных файловых систем и запуском любых демонов, которые были настроены для запуска.
Все это контролировалось записями в /etc/inittab.
Все это присутствовало в версиях Unix для PDP-11 в начале 1970-х годов и, полагаю, до этого.
Есть, конечно, бесконечные детали, но суть такова.
Вам нужно добавить -E
в командную строку sed
, чтобы использовать расширенные регулярные выражения:
sed -E 's/^([A-Za-z]+-[0-9]+)/\1/'
Если вы хотите сократить строку ] CBX-1234 - CBX-5678
- CBX-1234
, вам дополнительно необходимо изменить подстановку, чтобы учесть всю строку:
sed -E 's/^([A-Za-z]+-[0-9]+).*/\1/'
В качестве альтернативы вы можете использовать bash
расширение параметра
shortenedString="${string%%--*}"
Это удалит все из $ string
из первого появления -
.
Я всегда использую sed -r
$ echo "abhellocd" | sed -r "s/.*(hello).*/\1/g"
hello
Из справочной страницы sed:
-r, --regexp-extended
use extended regular expressions in the script.
Параметр -E
мной не указан. Хотя тоже работает.
Вы можно использовать echo "$ string" | вырезать -d "-" -f 1,2
.