Как заблокировать символ ~, когда я нахожусь в каталоге /home/user?

Во-первых, вам не следует анализировать вывод ls. Помимо этого, я собираюсь ответить на ваш вопрос относительно grep.

Если вы настаиваете на использовании grep, то вам нужно следующее:

grep -E "^[a-rt-zA-RT-Z][[:alnum:]]*m" file

На самом деле работает даже без-E:

grep "^[a-rt-zA-RT-Z][[:alnum:]]*m" file 

Это напечатает все, что начинается с чего-либо, кроме sили S, а затем любой буквенно-цифровой символ, который включает m, и любые символы после этого, независимо от того, являются ли они mили нет. По сути, это дает результат, который вы ищете.

Поскольку вы работаете с файлами, первое решение printfвыше намного лучше, так как оно не требует синтаксического анализа ls. Вы можете использовать grepвыше с именами файлов, но я бы не советовал этого и рекомендовал использовать его с содержимым файлов или данных в стандартном выводе.

Вы также можете использовать findдля файлов, так как их не нужно анализировать:

find /path/to/directory -type f -name "*m*" -name "[!s]*"

В зависимости от вашей среды вам может понадобиться выйти из*

find /path/to directory -type f -name "\*m\*" -name "'[!s]\*"
-2
06.09.2020, 18:28
2 ответа

Вы можете установить PS1 как

PS1='C:$PWD>'

$PWDрасширяется до текущего рабочего каталога.

Добавьте эту строку в ~/.bashrc, чтобы сделать ее постоянной.

2
18.03.2021, 23:06

Попробуйте это

export PS1='C:$(pwd)> '

Если это работает для вас, добавьте его в свой .bash_profileили.bashrc

1
18.03.2021, 23:06

Теги

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