| Grep, Найдите, которые регистрируют строки, прибыл из

Возможно, существует более легкое решение для этого, но мое первое предположение должно было использовать actkbd - клавиатура (но не только) демон ярлыка, который работает за пределами X-сервера.

В файле конфигурации можно связать любую комбинацию ключей с любой командой. Больше деталей о выполнении actkbd Вы может найти в этом ответе.

Rhythmbox можно управлять по интерфейсу dbus, поэтому при привязке той команды с немного, включают его, изменяют дорожку.

dbus-send --type=method_call  --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox  /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

Обнаружить больше dbus "управляет", чтобы можно было использовать d-ноги.

3
21.05.2013, 12:02
3 ответа

С GNU strings, использовать

strings --print-file-name -- *

снабдить префиксом результаты именем файла (как grep).

4
27.01.2020, 21:14
  • 1
    Как примечание, это также заставит grep соответствовать именам файлов, которые соответствуют Вашему шаблону. –  Chris Down 21.05.2013, 12:21
  • 2
    Да, я знаю. Если каждый не использует особенно странные имена файлов, можно зафиксировать это strings --print-file-name * | grep ': message' (имена файлов, произведенные strings завершаются : ). Основной вопрос состоит в том, хочет ли OP просто имена файлов (затем использование grep -l только лучше), или хочет ли он также совпавшие строки (затем grep будет или жаловаться на двоичный мусор или производить двоичный мусор, и ни один из них не полезен). исправление –  Uwe 21.05.2013, 12:31
  • 3
    : Если шаблон "сообщение" может произойти где-нибудь в строке, strings --print-file-name * | grep ': .*message' лучше. –  Uwe 21.05.2013, 12:44
  • 4
    (принимающий нет никакого названного файла foo: message например) –  Stéphane Chazelas 21.05.2013, 13:25
  • 5
    Это было одной из этих двух вещей, которые я имел в виду, когда я говорил об "особенно странных именах файлов". (Другой является новыми строками в именах файлов.) –  Uwe 21.05.2013, 13:30

grep понятия не имеет, куда строки прибыли из при использовании этого метода, потому что он никогда не видит имен файлов. Если Вы хотите имена файлов, использовать -l и передайте шарик grep непосредственно:

grep -l message ./*
1
27.01.2020, 21:14
  • 1
    Обратите внимание необходимость в реализации grep как GNU grep это поддерживает двоичные файлы чтения. –  Stéphane Chazelas 21.05.2013, 12:59
  • 2
    Что не поддерживает реализация --? Это не был бы POSIX, и я серьезно сомневаюсь, что любая реализация предPOSIX поддерживала бы двоичный файл. –  Stéphane Chazelas 21.05.2013, 13:23
  • 3
    @StephaneChazelas, Если я вспоминаю правильно, План 9. Найденная аллитерирующая привязка –  Chris Down 21.05.2013, 19:10
  • 4
    @StephaneChazelas Нет, я ошибаюсь, поддержки Плана 9 --. Я просто протестировал. –  Chris Down 21.05.2013, 19:19

С GNU grep, можно сделать:

grep -Hobae '[[:print:]]*message[[:print:]]*' -- *

Это скажет Вам имя файла и смещение в файле каждой печатаемой строки, содержащей message.

1
27.01.2020, 21:14

Теги

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