Спроба очистити PYTHONPATH
змінну, яка має загальний синтаксис:
/a/path:/another/path/:/one/more/path
Я хочу видалити всі шляхи, починаючи з /mnt
. Спочатку спробуйте sed
:
sed 's,/mnt/[^:]\+:,,g' <<< $PYTHONPATH
У ній усуваються всі випадки, які починаються з /mnt/
, слідуючи за одним чи кількома символами, крім двокрапки, та наступним символом двокрапки.
Однак це не вдасться для наступного прикладу:
PYTHONPATH="/mnt/first/path:/mnt/second/path"
бо другий шлях не закінчується двокрапкою. Я не міг народити нічого кращого, ніж запустити інший пошук з дещо іншим умовою:
sed 's,/mnt/[^:]\+:,,g;s,/mnt/.*$,,g' <<< $PYTHONPATH
Отже, після того, як всі випадки, що закінчуються двокрапкою, видаляються, інший запуск видаляє всі випадки виникнення (насправді існує максимум одна), які починаються /mnt/
і закінчуються кінцем рядка.
Запитання:
- Для задачі це прийнятне рішення?
- Чи існує особливий випадок, коли рішення вище не вдасться?
- Чи можливе тут одне рішення пошуку? Просто цікаво.
Спасибі заздалегідь!