Как искать строки внутри файлов в папке?

Гарри, ваше право. Вы не помните, что Ubuntu просил вас подключить зарядное устройство перед установкой? Это потому, что он делает снимок на сколько аккумулятор может держать. Если вы хотите сбросить power-manager, я предполагаю, что вам нужно будет переустановить Ubuntu или попробуйте силовой цикл. Другими словами, дайте батарее вытечь, а затем включите ее в тот же момент, когда вы включите зарядное устройство, и держите его, пока он не достигнет 100%.

1
задан 24 January 2014 в 22:01

6 ответов

Я предполагаю, что ваш первый вопрос касается альтернативы GUI для команды grep. Я не могу с этим поделать, я всегда считаю, что командная строка очень эффективна.

Что касается командной строки, попробуйте

grep "test" /var/x/*

Если вы хотите искать рекурсивно (т. Е. do

grep -R "test" /var/x/

Чтобы избежать grepping файлов, которые grep считает двоичными, используйте параметр -I:

grep -I "test" /var/x/
, а также в его подкаталогах. ]

Если grep считает, что файл двоичный (на основе первых нескольких байтов файла), он предположит, что он не совпадает, а не проходит через весь файл.

139
ответ дан 25 May 2018 в 05:42
  • 1
    Будет ли он работать, если папка содержит некоторые файлы без ascii? – Anwar 9 October 2012 в 13:47
  • 2
    Ну, grep также попытается найти строку в двоичном файле и сообщить об этом, если она соответствует: Binary file file.jpg matches – January 9 October 2012 в 13:49
  • 3
    @January Когда двоичный файл считывается как текст, он часто имеет чрезвычайно длинные строки и " (потому что последовательность символов или символов, которая будет интерпретироваться для обозначения конца строки, может не отображаться в течение длительного времени или когда-либо). В зависимости от способа реализации утилиты текстового поиска это может вызвать проблемы с производительностью, если каждая строка «quot; полностью считывается в память, а затем проверяется, соответствует ли строка поиска (что является разумным способом кодирования grep, хотя я не знаю, написано ли это grep Ubuntu). – Eliah Kagan 9 October 2012 в 14:30
  • 4
    "grep -i" для нечувствительного к регистру поиска – Czarek Tomczak 24 May 2013 в 20:32
  • 5
    Должен быть * после окончательной косой черты в пути или grep, похоже, не работает в 14.04 – DavidScherer 19 May 2016 в 16:35

Вы можете использовать regexxer, это отличный инструмент поиска / замены GUI для регулярных выражений.

вы можете скачать по:

sudo apt-get install regexxer

15
ответ дан 25 May 2018 в 05:42
  • 1
    это очень быстро, но проблемы, которые у меня возникают с этим приложением: 1. у него нет режима readonly, поэтому я не случайно заменяю или удаляю что-либо 2. он показывает текст, но он не будет перемещаться в конкретный линии, которая соответствует шаблону. (Я прокрутил около 2000 строк кода, чтобы найти то, что было после изменения цвета, до ярко-красного!) – Mehrad Mahmoudian 26 September 2017 в 13:58

Попробуйте Recoll, лучший графический интерфейс, который я когда-либо использовал. Чтобы установить recoll во все поддерживаемые в настоящее время версии Ubuntu, откройте терминал и введите:

sudo apt install recoll

. Сначала нужно индексировать файлы (вы можете определить путь или расширение черного списка или mime). [!d1 ]

5
ответ дан 25 May 2018 в 05:42
  • 1
    Я могу подтвердить, что Recoll - это совсем другой мир по отношению к gnome-search-tool или search-monkey. Он использует Xapian, поэтому он способен проверять и индексировать текстовые документы (как .doc, так и .docx), файлы PDF, почтовые папки и т. Д. – Avio 22 March 2017 в 14:51
  • 2
    Uh, он доступен через deb deb (sudo apt install recoll), и он выполняет свою работу там, где даже grep терпит неудачу, например. с документами .docx, сжатыми сжатием pkzip. – Avio 22 March 2017 в 14:56

Вы можете использовать команду grep из терминала:

grep -r string *

Эта команда найдет все вхождения «string» во всех файлах в текущем каталоге ( или поддиректории).

Для скрытых файлов вы можете использовать:

grep -r string ..

3
ответ дан 25 May 2018 в 05:42
  • 1
    короткий и сладкий, 2 точечный ответ. Благодаря! – amit_kumar 3 October 2017 в 11:42

К сожалению, grep выполняет очень плохую работу по поиску внутри файлов Word (.doc), но вы можете вывести вывод catdoc в grep. Я не программист, но этот маленький скрипт хорошо работает для меня:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

Все улучшения и предложения приветствуются!

2
ответ дан 25 May 2018 в 05:42
  • 1
    Этот вопрос касался графических приложений и текстовых файлов. Я не уверен, что grep и .doc имеют отношение к вопросу. – Andrea Corbellini 26 January 2013 в 20:54
  • 2
    Кажется хорошо, см. Подробный ответ января о grep. – aquaherd 26 January 2013 в 20:58

Я только что выпустил простой инструмент для выполнения этой задачи. Мысль, главным образом, для разработчиков программного обеспечения, имеет (уникальную?) Характеристику открытия нескольких файлов в одном окне. Он представляет результаты в браузере с помощью редактора Ace (рекомендуется!) Или html textarea. Это инструмент на основе java, поэтому он работает как в Windows, так и в Linux.

проверьте это!

https://sourceforge.net/projects/queacetu.gastona.p /

1
ответ дан 25 May 2018 в 05:42

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

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