Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: поиск внутри архива *.tar.bz2  (Прочитано 1897 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
поиск внутри архива *.tar.bz2
« : 28 Ноября 2019, 06:50:16 »
Привет!

Сегодня трабла такая: требуется найти кусок текста в файле-архиве tar.bz2
Если для обычных файлов есть этот grep то в архивных, вообще не понятно как это работает.  :o
bzcat | grepbzgrepИ всё равно вывод терминала остаётся пустой.
Как вот это сделать?

 :o
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6839
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #1 : 28 Ноября 2019, 09:26:25 »
Цитировать
найти кусок текста в файле-архиве tar.bz2
О, консоль всемогущий!
Но я не столь всесилен, чтобы овладеть сей магией. А посему - Midnight commander.
Входишь в архив, как в каталог, а далее хочешь визуально ищи. А хочешь, жми "Ctrl+Alt+?" и вводи в поля что искать и где искать.

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #2 : 28 Ноября 2019, 10:08:44 »
andytux, Ok, будем знать про mc.

Просто интересно, почему через терминал не получается?
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Онлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2547
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #3 : 28 Ноября 2019, 12:05:44 »
Просто интересно, почему через терминал не получается?

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

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #4 : 28 Ноября 2019, 12:29:30 »
Usermaster, Странно..
https://forum.lissyara.su/freebsd-f8/chem-mojno-grep-nut-logi-v-bz2-t10120.html

Или может я не правильно понял?
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #5 : 28 Ноября 2019, 13:46:53 »
кусок текста
Если у вас в архиве odt, doc, xls - то grep не найдет. Также, может не найти если кодировка текста не UTF8
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #6 : 28 Ноября 2019, 14:12:34 »
ALiEN175,
формат файлов такой "Несохранённый документ 1", без приставок. Все файлы создавалось здесь, в бунте.
И там просто уйма вот таких "текстовых файлов", в которых много нужного.
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6839
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #7 : 28 Ноября 2019, 14:43:06 »
Цитировать
формат файлов такой "Несохранённый документ 1"
А это как раз вообще ни о чем не говорит. То, что имя файла русскими буквами, или нет расширения, совсем не означает, что файл не мог быть создан каким-нибудь "офисом". И следовательно, называть его "текстовым" можно с большой натяжкой.
И в тоже время файл, например binary.exe, вполне может быть самым настоящим текстом.
Тем же mc по клавише "F3" можешь глазами посмотреть любой файл и быстро сориентироваться, текстовый он или нет. Если текст русский и в разных кодировках, то можно переключать кодировки.
« Последнее редактирование: 28 Ноября 2019, 14:48:57 от andytux »

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #8 : 28 Ноября 2019, 15:31:43 »
andytux, Получается интересное кино.
Значит просмотреть какие файлы в архиве я могу, извлечь какой-то один определенный файл тоже могу.

А найти текст в этих файлах не могу...

 :o

Про мс понял.
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн es1840

  • Активист
  • *
  • Сообщений: 328
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #9 : 28 Ноября 2019, 15:53:26 »
$ cat t.txt   
andytux, Получается интересное кино.
Значит просмотреть какие файлы в архиве я могу, извлечь какой-то один определенный файл тоже могу.

А найти текст в этих файлах не могу...

$ bzip2 t.txt
$ ll t.txt*   
-rw-r--r-- 1 oleh oleh 191 Nov 28 14:48 t.txt.bz2
$ bzgrep 'могу' t.txt.bz2
Значит просмотреть какие файлы в архиве я могу, извлечь какой-то один определенный файл тоже могу.
А найти текст в этих файлах не могу...

По поводу tar см. man tar опцию -O

tar -xjfv nvidia-persistenced-init.tar.bz2 -O | grep -i 'nvidia'

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #10 : 28 Ноября 2019, 17:00:39 »
Вообще не пойму.
Короче отстал от этого большого своего архива, создал новый.

Сначала создал три файла
b,c,d
в каждый записал значение
111,222,333
как это называется, запаковал в tar
tar -cvf buka.tar b c d
заархивировал в bzip2
bzip2 buka.tar
пишу
tar -xjfv buka.tar.bz2 -O | grep -i '222'По идее он как то должен показать что это файл "с"
вывод
b
c
d
222

 :o
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #11 : 28 Ноября 2019, 18:09:09 »
По идее он как то должен показать что это файл "с"

tar -xjfv buka.tar.bz2 -O | grep -i '222'

вывод всего списка файлов в stderr
Цитировать
b
c
d
вывод stdout, проходящий через grep
Цитировать
222


Пользователь добавил сообщение 28 Ноября 2019, 18:15:01:
tar xf buka.tar.bz2 --to-command 'grep --label="$TAR_FILENAME" -H 222 ;true'
« Последнее редактирование: 28 Ноября 2019, 18:15:01 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #12 : 28 Ноября 2019, 18:31:31 »
tar -xjfv buka.tar.bz2 -O | grep -i '222'

tar -xjfv buka.tar.bz2 -O | grep '222'

tar (child): v: Функция open завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
И тут же
tar -tf buka.tar.bz2

b
c
d

Так ну хорошо, а если архивировать просто bz2 без tar. То получается один файл-один архив?

Пользователь добавил сообщение 28 Ноября 2019, 18:34:18:
tar xf buka.tar.bz2 --to-command 'grep --label="$TAR_FILENAME" -H 222 ;true'

Блин ну до такого мне додуматься невозможно.  :)
Походу найден вариант.

Всё, испробовал на большом файле, и правда работает. Благодарю.  :)
« Последнее редактирование: 28 Ноября 2019, 18:39:41 от Ubbuntu »
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: поиск внутри архива *.tar.bz2
« Ответ #13 : 28 Ноября 2019, 18:35:29 »
tar -xjfv buka.tar.bz2 -O | grep -i '222'
Это я из вашего предыдущего сообщения скопировал.



Пользователь добавил сообщение 28 Ноября 2019, 18:36:56:
Блин ну до такого мне додуматься невозможно.
невозможно
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Ubbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 538
  • --мята x64 LTS 18.04/Gentoo/Микрософт W10
    • Просмотр профиля
    • Русские man-ы
Re: поиск внутри архива *.tar.bz2
« Ответ #14 : 28 Ноября 2019, 18:40:34 »
невозможно
Да ну его, этот английский...  :)
Ubuntu — древнее африканское слово, означающее «Я не могу настроить Debian и Arch».
©
Unity, XFCE, MATE. --мята x64 LTS 16.04, 18.04/Gentoo-XFCE

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.