Можно ли подать выделенный текст в качестве ввода в grep

Я использую grep, чтобы найти уникальный (маркерный) текст среди большого количества файлов.

grep MarkerText -r -C 30 -h ~/helpfiles/*

Можно ли передать выделенный текст в качестве входных данных для моей команды grep, чтобы выделенный текст заменял MarkerText в этой команде? Я надеюсь избежать необходимости все время копировать и вставлять.

0
задан 3 August 2019 в 11:28

2 ответа

Да, конечно - существует PRIMARY выбор в X11.

ОСНОВНОЙ выбор, используется, когда пользователь выбирает некоторые данные. X Window: Буфер обмена

Можно использовать также xsel или xclip инструменты cli:

TL; DR

  1. Выберите некоторый текст

2a. grep "$(xsel)" -r -C 30 -h ~/helpfiles/*

ИЛИ

2b. grep "$(xclip -o)" -r -C 30 -h ~/helpfiles/*

Предварительное условие

  • xsel или xclip пакет установил: apt get install xsel или apt get install xclip

  • X сервер работает (т.е. Вы используете X-сервер, не текстовый режим без X-сервера): xset q > /dev/null && echo "X is running" || echo "start X server"

Объяснение

Оба xsel и xclip инструменты управления буфера обмена. Команды xsel и xclip -o печать к STDOUT содержание PRIMARY выбор. Больше информации можно найти здесь: 'xclip' по сравнению с 'xsel'

Используйте двойные кавычки вокруг $(). Это позволяет выделять больше чем 1 слово.

2
ответ дан 23 October 2019 в 07:35

Если можно установить xclip пакет, попробуйте:

grep `xclip -o` -r -C 30 -h ~/helpfiles/*

"xclip-o" в вышеупомянутой команде будет заменен тем, что находится на Вашем буфере обмена.

1
ответ дан 23 October 2019 в 07:35

Другие вопросы по тегам:

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