Навигация по истории в режиме Vi оболочки Bash

Если вам нужен однострочный ответ, то используйте :

grep "service" filex | xargs echo | sed 's/ /, /g'

ИЛИ

если вам нужен условный синтаксис, то вы можете сделать так:

while read -r line
do
if [[ $line == *"service"* ]]
then
   Services+=("$line")
fi
done < "/tmp/filex"

echo "${Services[@]}" | tr ' ' ,

Это даст следующее:

alm_service1_ax,alk_service2_av,alk_service5_av,alk_service3_aff,alk_service5_afds

/tmp/filex - путь вашего файла

echo "${Services[@]}" | tr ' ' , - печать массива, разделенного запятыми

3
01.05.2017, 20:52
1 ответ

Привязки клавиш по умолчанию для перемещения вверх или вниз в истории команд во всех известных мне оболочках, которые поддерживают привязки клавиш Vi, это k для предыдущей команды и j для следующей команды.

Это то же самое, что и соответствующие команды перемещения в редакторе Vi.

Чтобы они работали, вам нужно будет находиться в «нормальном» режиме, т.е. вам нужно нажать Esc один раз.

Чтобы очистить экран, используйте команду очистить.

3
27.01.2020, 21:21

Теги

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