пред. след. стартстоп
0 0
Добавлено в корзину

find ..

 

поиск
RDP win
sed
Ubuntu
    rename-files
кодировки
виртуалки
полезности 

 

 

 

 

OR — AND — NOT — несколько условий

OR  (логическое ИЛИ) : Любое из нескольких условий:

egrep "ВЫРАЖЕНИЕ1|ВЫРАЖЕНИЕ2" FILE
awk '/ВЫРАЖЕНИЕ1|ВЫРАЖЕНИЕ2/' ФАЙЛ
sed -e '/ВЫРАЖЕНИЕ1/b' -e '/ВЫРАЖЕНИЕ2/b' -e d ФАЙЛ
---------------------------------------------------------------------------------------------
AND (логическое И): Каждое из условий:

grep -E 'ВЫРАЖЕНИЕ1.*ВЫРАЖЕНИЕ2' ФАЙЛ                 - в такой последовательности
awk '/ВЫРАЖЕНИЕ1.*ВЫРАЖЕНИЕ2/' ФАЙЛ
sed '/ВЫРАЖЕНИЕ1.*ВЫРАЖЕНИЕ2/!d' ФАЙЛ
--------------------------------------------------------------------------------------------
NOT: Исключение

grep -v 'ВЫРАЖЕНИЕ1' ФАЙЛ
awk '!/ВЫРАЖЕНИЕ1/' ФАЙЛ
sed -n '/ВЫРАЖЕНИЕ1/!p' ФАЙЛ

Поиск в консоли в текстовых документах по содержимому

При отсутствии, устанавливаем:
install catdoc antiword odt2txt poppler-utils xls2csv pdfgrep

Поиск по документам MS Word начиная с текущего каталога используя утилиту catdoc для чтения doc файлов

find . -name "*.doc" | while read i; do catdoc "$i" | grep -Hi --label="$i" -n "что_ищем"

find . -name "*.doc" | while read i; do catdoc "$i" | grep -Hi --label="$i" -n "что_ищем"

или, используя утилиту antiword для чтения doc файлов

find . -name "*.doc" | while read i; do antiword "$i" | grep -H --label="$i" -n "что_ищем"

Поиск по документам OpenOffice Writer и LibreOffice Writer начиная с текущего каталога используя утилиту odt2txt для чтения odt файлов

find . -name "*.odt" | while read i; do odt2txt "$i" | grep -H --label="$i" -n "что_ищем"

Поиск по текстовым PDF файлам (не будет работать с файлами созданными из графических форматов, например отсканированные книни без текстового слоя):

find . -name '*.pdf' -exec pdftotext {} - \; | grep "что_ищем"

После работы однострочника выдается путь к файлу и номер строки с искомой фразой.

Прочитать документ можно так:

antiword "имя файла" | less
odt2txt "имя файла" | less

в less по "/" работает поиск.

xls2csv -s windows-1251 -d utf-8 name.xls - конвертировать xls в csv

мусор при сортировке мыла

egrep "(admin|support|satu|*.png|facebook|@market.kz|Rating@Mail.ru|webmaster|no_reply|web|
pentagon|aliexpress.com|servisemail|.gov."

мусор при сортировке сайтов

egrep -v 'orgpage|static|ajax|yandex|addthis|schema|data-vocabulary|ogp\.|vk\.com|facebook|\.ru$|\.ru\.|\.me$|youtube|puzzleservice|damu|\.gov\.|wix\.com$|hotmail|shumgam|tomas|translations'

удаление из файла

sed -i ''/admin/d; /support/d; /satu/d; /.png/d; /facebook/d; /@market.kz/d; /Rating@Mail.ru/d; /webmaster/d; /no_reply/d; /web/d; /pentagon/d; /aliexpress.com/d; /servisemail/d; /.gov./d;' file

Поиск и удаление файлов

find -name "что_ищем" -type f -exec rm {} \; - поиск и удаление всех что_ищем в текущем каталоге

find -name "*.ht*" -exec cat {} \; -type f > file - объединить все файлы в file

find -name "*.ht*" -exec egrep -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" {} \; -type f - поиск мыла

find -name "*.ht*" -exec egrep -o "(+[ +][7-8][ (][() 0-9-]{3,17})" {} \; -type f  - поиск телефонов
egrep "([ +][78]+[ (]+[() 0-9-]{3,17})|([ +]+[0-9()]{11,13})"

Поиск дубликатов файлов:

Linux

find ./ -type f | xargs -d\\n md5sum | sort | uniq -D -w 32 >duplicates.txt


 

Удаление файлов с поиском

Windows

del e:\forall\*.gpg /s удаление файлов по маске в катлоге + вложенные
del e:\forall\*.vault /s


Удаление старых файлов одной командой в Linux

Удобно помещать такую команду в cron.

Например, для файлов старше 5 дней:

find /path/to/files* -mtime +5 -exec rm {} \;

Для файлов, измененных в пределах 24...48 часов:

find /path/to/files* -mtime 1 -exec rm {} \;

Это версия для Debian, на RHEL надо писать чуть по-другому:

find /path/to/files* -mtime +0 -exec rm {} \;

Создать файлы для тестирования можно командой (например, дата 2 апреля):

touch -d '2 Apr' /path/to/test_file


 

Сравнить содержимое двух каталогов

diff -urN dir1 dir2 > out.diff

после этого смотреть получившийся файл c подсветкой синтаксиса

mc -e out.diff


Сравнение файлов

comm -- выбрать или отбросить строки, общие для двух файлов

comm -23 1.txt 2.txt - вывод уникальных строк из 1.txt

СИНТАКСИС comm [-123i] файл1 файл2
ОПИСАНИЕ Утилита comm читает файл1 и файл2, которые должны быть предварительно лексически отсортированы, и генерирует вывод, состоящий из трех колонок текста: строки, найденные только в файле файл1; строки, найденные только в файле файл2; и строки, общие для обоих файлов.

Имя файла ``-'' означает стандартный ввод. Имеются следующие опции:

-1 Подавить вывод первой колонки.
-2 Подавить вывод второй колонки.
-3 Подавить вывод третьей колонки.
-i Нечувствительное к регистру сравнение строк.

Перед каждой колонкой будет напечатано столько символов табуляции, сколько печатается колонок с меньшими номерами. Например, если вывод второй колонки подавляется, то перед строками, печатаемыми в первой колонке, символов табуляции не будет совсем, а перед строками в третьей колонке будет напечатан один символ табуляции. Утилита comm предполагает, что файлы были предварительно лексически отсортированы; все символы участвуют в сравнении строк.

Сравнить два файла с выводам результата

grep -F -v -f 2.txt 1.txt или  fgrep -v -f file2.txt file1.txt >результат.txt

-F Задает сопоставление с фиксированными строками. Каждый образец ищется как строка, а не как регулярное выражение. Если входная строка содержит любой из образцов в качестве подряд идущих байтов, такая строка считается соответствующей образцу. Пустая строка-образец соответствует любой строке.

-v Выдает все строки, за исключением содержащих образец

-f -f файлобразцов Читает один или несколько образцов из файла с указанным полным именем файлобразцов. Образцы в файлеобразцов завершаются символом новой строки. Пустой образец можно задать с помощью пустой строки в файлеобразцов. Если только вместе с этой опцией не указана опция -E или -F, каждый образец счиается простым регулярным выражением.