Проблема в том, что \w
означает «символы слова» ([a-zA-Z0-9_]
), а .
никогда не является частью слова:
$ echo. | grep '\w'
$
Вы можете просто искать не -пробел:
$ echo ABC.xyz | grep '\S*ABC\S*'
ABC.xyz
Обратите внимание, что \S
не может быть понято всеми. Если это не работает в вашей реализации, используйте вместо этого grep -E
.
Одинарные кавычки нельзя экранировать внутри строки в одинарных кавычках. Вам нужно выйти из двойных кавычек и ввести их позже:
alias mount-open='sudo mount $(sudo blkid | gawk '\''/2tb-open/ { print substr($1, 0, 9) }'\'') 2tb-open'
С помощью функции или скрипта было бы намного проще:
mount-open() {
sudo mount "$(
sudo blkid |
gawk '/2tb-open/ { print substr($1, 0, 9) }'
)" 2tb-open
}
Хотя если вы хотите установить устройство с меткой 2tb-open
,
mount-open() { sudo mount LABEL=2tb-open 2tb-open; }
должно быть достаточно.