1

Доброго времени суток, подскажите какой утилитой искать в файлах регулярное выражение, не открывая текстовый файл?
допустим у меня имеется директория с over 3000 текстовых файлов..
нужно найти в этих файлах одно регулярное выражение.
либо оно там есть, либо его там нет.

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

заранее спасибо.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

2 (21.12.2011 17:12:40 отредактировано Lupo Alberto)

man grep

moshell пишет:

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

echo "alias grep='egrep --color=auto'" >> ~/.bashrc
Был, был и весь вышел...

3

man cat
man ls
man find
наконец man man
Комбайнов можно нагородить сколько угодно и из чего угодно.
Вы просто для общего развития спрашиваете или есть конкртеная зада, кооторой не можете найти решения?

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

4

конкретная задача конечно же есть.

имеется некий сервак, крутится он на solaris
к этому серваку присоединена целая куча "объектов" (over 3000)
на серваке имеется встроенная функция мониторинга этих объектов.
так вот вывод мониторинга идет в файлы, один файл == один объект.
мне нужно кое чего выявить, используя рег.выраж.

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

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

5

moshell пишет:

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

Тогда ещё  wink

man awk
Был, был и весь вышел...

6

спасибо, товарищи!


ps./прощай выходные  smile

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

7

moshell пишет:

ps./прощай выходные 

Тогда ещё — http://www.opennet.ru/docs/RUS/bash_scr … x7050.html

Был, был и весь вышел...

8

Тогда уж до кучи:
http://pingvinus.ru/note/command-find

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

9

Vadimsky пишет:

Тогда уж до кучи:

...чтоб и следующие выходные захватить  wink
...но это ж Новый Год!  :O  oO

Был, был и весь вышел...

10

А там каникулы до 10-го...

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

11

ah
зачем новичка так пугать?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

12

moshell, а как вы хотели? smile
Недаром всех линуксоидов называют программистами, знающими всё о системах smile
Моя первая книжка о Linux была "Линукс или всё для ботаников" ag

Linux Mint 19.3 Mate Edition
Windows 7

13

moshell,

Тяжело в учении, легко в бою! А.В. Суворов

И я с ним полностью согласен.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

14

find . -type f -exec grep -l МАСКА_ПОИСКА \{\} \;
вдруг кому надо.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

15

можно ли использовать этот мануальчик для изучения awk?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

16

moshell, там-то изучать нечего  wink
Гляньте здесь — http://www.funtoo.org/wiki/Category:Articles
На «хабре» где-то должен быть перевод.
P.S. http://www.google.by/search?q=awk+site% … nt=firefox

Был, был и весь вышел...

17

Помогите пожауйста разобраться. У меня есть фаил со следующим содержанием:

zip.x86_64                           2.31-2.el5                        installed
zlib.i386                            1.2.3-4.el5                       installed
zlib.x86_64                          1.2.3-4.el5                       installed
zlib-devel.x86_64                    1.2.3-4.el5                       installed

Необходимо убрать третий столбик.
Использую команду:

awk '{print $1"\t"$2}' yumlistinstalled

Получаю:

zip.x86_64      2.31-2.el5
zlib.i386       1.2.3-4.el5
zlib.x86_64     1.2.3-4.el5
zlib-devel.x86_64       1.2.3-4.el5

Подскажите как получить данные в таком виде:

zip.x86_64                           2.31-2.el5
zlib.i386                            1.2.3-4.el5
zlib.x86_64                          1.2.3-4.el5
zlib-devel.x86_64                    1.2.3-4.el5

То есть, чтобы все данные были в один ряд в каждом столбце.
Заранее спасибо за ответ.

18

NewbieUNIX пишет:

Помогите пожауйста разобраться. У меня есть фаил со следующим содержанием:

У меня как-то так получилось:

awk  '{ printf "%-30s %-s \n", $1 ,$2}' yumlistinstalled  

тут 30  ширина певрого столбца, а "-"  - выравнивание по левому краю.

github.com/cocaine

19

...или два-три [Tab] добавьте, т.е.

awk '{print $1"\t\t\t"$2}' yumlistinstalled
Был, был и весь вышел...

20

Lupo Alberto пишет:

или два-три [Tab] добавьте, т.е.

гмм.. у меня не сработало так

github.com/cocaine

21

NoXi0uZ пишет:

гмм.. у меня не сработало так

...ну да ac Ошибся.
Если в третьей колонке всегода одно и то же слово, проще использовать sed

 sed 's/installed//g' yumlistinstalled
Был, был и весь вышел...

22

Ещё вариант:

awk '{print $1"\t"$2}' yumlistinstalled | column -t
Был, был и весь вышел...

23

Lupo Alberto пишет:

Ещё вариант:

Во, вот это красота!

github.com/cocaine

24

1.

awk  '{ printf "%-30s %-s \n", $1 ,$2}' yumlistinstalled  

2.

awk '{print $1"\t"$2}' yumlistinstalled | column -t 

3.

sed 's/installed//g' yumlistinstalled 

Все варианты работают отлично!
Первый хорош тем, что можно изменять ширину столбца.
А третий подходит для удаления столбца с повторяющимися данными.
Еще раз спасибо!!