Как использовать SED для замены двух экземпляров одинаковых цифр, разделенных косой с одним экземпляром этих цифр?

При запуске без аргументов mount возвращает список подключенных разделов и некоторую информацию о них, включая их точки монтирования. Следовательно, вы можете просто grep для точки монтирования в выводе команды mount и действовать соответственно:

if ! mount | grep -q sbackup; then
    mount /dev/sdb1 /home/matthew/sbackup || echo "Couldn't mount" && exit
fi

Измените / dev / sdb на любой раздел вашего USB и matthew на ваше имя пользователя. Запустите сценарий с sudo , чтобы смонтировать.

4
22.07.2018, 23:25
1 ответ

Версия OSX sedдовольно раздражает (на самом деле это версия BSD ). Обычно я устанавливаю GNU sedчерез brew :

.
$ brew search sed
==> Formulae
gnu-sed ✔             libxdg-basedir        minised               ssed

==> Casks
eclipse-dsl                                  marsedit
exoduseden                                   microsoft-bing-ads-editor
focused                                      osxfuse-dev
google-adwords-editor                        physicseditor
lego-mindstorms-education-ev3                prefs-editor
licensed                                     subclassed-mnemosyne

Установить:

$ brew install gnu-sed

Затем вы можете использовать его так:

$ gsed....

И вуаля, ваш пример теперь работает:

$ echo 'text (1984/1984) text' | sed -E 's_\(([0-9]{4})/\1\)_\(\1\)_g'
text (1984/1984) text
$ echo 'text (1984/1984) text' | gsed -E 's_\(([0-9]{4})/\1\)_\(\1\)_g'
text (1984) text

Ссылки

4
27.01.2020, 20:54

Теги

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