Использование sed (или чего-нибудь полезного) для замены строк относительным содержимым

user@xxxназывается «подсказкой». Он задается переменной окружения PS1. В bash по умолчанию используется bash-, что совершенно бесполезно, но в принципе файл конфигурации bash всегда должен устанавливать что-то лучшее.

Обычный случай, когда вы могли бы получить это, когда вы только что создали файл ~/.bashrc, который не включает /etc/profile. Без этого файла bash возвращался к /etc/profile, и вы получали конфигурацию вашей системы по умолчанию. С пустым или минималистичным ~/.bashrcзагружается только ваша собственная конфигурация, и вы не получаете преимуществ от того, что вставил ваш дистрибутив или системный администратор /etc/profile.

Решение :добавьте это в свой~/.bashrc:

if [ -f /etc/profile ]; then
   . /etc/profile
fi

Кроме того, вы можете настроить подсказку самостоятельно, добавив что-то вроде этого (после приведенного выше фрагмента):

PS1="\u\h@\\$ "

(Вы можете настроить то, что отображается в подсказке, сделать ее красочной и т. д. с помощью таких инструментов, какhttp://ezprompt.net/)

2
20.03.2017, 05:08
2 ответа

Следующий пример должен работать на вас.

sed 's#<a href="">\(.*\)</a>#<a href="HTML-EX/html/\1.html">\1</a>#'

Сначала он захватывает текст между тегами a, который представлен переменной \ 1 . Затем используйте переменную в строке результата.

4
27.01.2020, 21:59
perl -i -pe 's|<a\hhref=\K "" (?=>([^<]+)</a>)|"HTML-EX/html/$1.html"|gx' *

Используйте lookbehind и lookahed в """ и вставьте необходимую строку внутри этих двойных кавычек, основываясь на захвате lookahead.

0
27.01.2020, 21:59

Теги

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