Автор Тема: Поиск или замена в Linux. find, locate, du  (Прочитано 16779 раз)

Оффлайн Tarasov

  • Участник
  • *
  • Сообщений: 245
  • -=|ALT Linux 4.1 Desktop|=-
    • ИПК
подскажите.. вот есть папка, в ней много файлов в формате html.
как вывести список тех файлов, внутри которых встречается  фраза "geforce fx5200"??
заранее благодарен???
Истина где то там....

Alexei_VM

  • Гость
Re: как правильно вести поиск
« Ответ #1 : 08.12.2008 20:38:56 »
подскажите.. вот есть папка, в ней много файлов в формате html.
как вывести список тех файлов, внутри которых встречается  фраза "geforce fx5200"??
заранее благодарен???

Наверное, man grep

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....

Оффлайн kaf

  • Участник
  • *
  • Сообщений: 128
Re: как правильно вести поиск
« Ответ #3 : 08.12.2008 21:02:51 »
подскажите.. вот есть папка, в ней много файлов в формате html.
как вывести список тех файлов, внутри которых встречается  фраза "geforce fx5200"??
заранее благодарен???
grep -y geforce *.html | grep -y  fx5200

Оффлайн Alexandr

  • Участник
  • *
  • Сообщений: 366
  • Кризис, что сказать...
Доброго вечера:) Собственно, суть проблемы - есть к примеру несколько словосочетаний:

control.domain.local

cont.mydomain.target.lo


Это я к примеру. Нужно из каждого, или любого другого словосочетания удалить символы с токчой с правой стороны. Т.е доменный суфикс в данном случае. Вроде как это умеет делать команда sed, но у меня че-то как-то совсем не получается. Прошу вашей помощи :)
« Последнее редактирование: 02.03.2009 17:57:31 от Skull »
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Alexandr

  • Участник
  • *
  • Сообщений: 366
  • Кризис, что сказать...
Ну блин... как то уже не смешно :( Я сначала день ищу ответ, затем в отчаянье задаю его на форуме, затем через 30 мин., практичеки выстрелом в небо нахожу ответ >:(

Решение моей проблемы возможно если выполнить команду: sed 's/\(.[a|A-z|Z]*\)$//'

Например:
$ echo "comp.domain.local" |  sed 's/\(.[a|A-z|Z]*\)$//'
comp.domain

$ echo "comp.domain" |  sed 's/\(.[a|A-z|Z]*\)$//'
comp


Хотя почиму оно работает таким образом, а к примеру sed 's/\(.*\)$//' не работает, я почиму-то никак не пойму ???
« Последнее редактирование: 27.02.2009 17:22:24 от Alexandr »
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Andrey

  • Участник
  • *
  • Сообщений: 734
а можно вопрос, вам это зачем, может есть более изящное решение  ;)

Оффлайн Alexandr

  • Участник
  • *
  • Сообщений: 366
  • Кризис, что сказать...
Цитировать
а можно вопрос, вам это зачем, может есть более изящное решение

Можно:)

Зачем что? Использовать sed или зачем удалять суфикс из доменного имени?

Что касаемо sed - я просто не зная другой проги, способной на такое. Но очень буду за! чтобы узнать.

Зачем удалять суфикс? Я пишу скрипт, которы при указании имени компьютера и полного доменного имени, будет включать машину в домен. И это был последний затык, на котором я остановился. Я не собираюсь мириться с тем фактом - что чтобы включить комп в домен, нужно перелапатить кучу конфигов. Плюс, в этих конфигах нужно то указать КОРОТКОЕ_ИМЯ_ДОМЕНА в ВЕРХНЕМ регистре, то полное_имя_домена_включая_суфикс в нижнем регистре >:( ИМХО - БРЕД! И сейчас у меня дома валяется мукулатуры по линуксу уже тышь на 8-мь! рублей и даже в самой толстой книге, под 1000 страниц, про самбу написанно всего в двух! коротеньких! главах. Зато про то, что такое ленточный накопитель и какой он хороший и как с ним работать там раз в 10ть! больше написанно >:( Я уже не говорю о том, что уважаемые господа, которые между прочем судя по всему не сочли нужным(или просто не знают) как не то, чтобы как настроить самбу - как этот процесс оптимизировать. А они еще наверно денег за свои книги поимели >:(

Вот пример, как будет работать мой скрипт:

./join-samba -c user1 -wg workgroup   - включает машину в рабочую группу workgroup и дает ей имя user1

пример 2:

./join-samba -c user1 -d mydomain.local -u DomainAdmin   - включает машину в домен. Все! Никаких имен домена по 10 раз и целой помойки конфигов! Даже имя контролера указывать не надо - скрипт сам разбереться.

пример 3:

./join-samba -r    - востанавливает состояние машины до использования скрипта.
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Alexandr

  • Участник
  • *
  • Сообщений: 366
  • Кризис, что сказать...
Причем скрипту будет сугубо фиолетова, как я укажу параметры имени компьютера и домена:

./join-samba -c user1 -d mydomain.local

или

./join-samba -c useR1 -d mYdOmAiN.lOcal

Он все равно приведет их в нужный вид. А если он увидит, что ему не хватает пакетов - он сначала поищет их в текщем каталоге, затем в прописанных репозиториях, затем в указанном репозитории, а если не найдет - чесно об этом напишет и прикратит свою работу :D
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Andrey

  • Участник
  • *
  • Сообщений: 734
Да не кипетитесь Вы так, sed вещь хорошая.
Проблема с введением линукса в домен самба(из вышеизложенного не совсем понятно)? То есть скрипт запускается на станции которая вводится в домен, и она в плане hostname, domainname не настроена Мне не приходится очень часто вносить в домен самба, линукс машины, но что-то я пока с такими ситуациями не встречался(я про регистр, суффикс). Если не считаете нужным можете не отвечать, у меня просто интерес к самбе...

Оффлайн Alexandr

  • Участник
  • *
  • Сообщений: 366
  • Кризис, что сказать...
Цитировать
Да не кипетитесь Вы так, sed вещь хорошая.

Хорошая, полностью согласен. Только бы в интернете народ не копировал друг у друга страницы с мануалами :D Да и man автор проги мог бы по интереснее написать. А то, вроде и должно, а чер пойми что - и не одной подсказки - как будто никому не нужно удалять произвольные символы и строки с правой стороны. Я этот скрипт уже 2-ю неделю пишу, устал просто. То прет как по маслу, то как встанешь на какой-нить мелочи и усе.

Цитировать
То есть скрипт запускается на станции которая вводится в домен

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

Цитировать
но что-то я пока с такими ситуациями не встречался(я про регистр, суффикс)

Либо не вводили вовсе:) А про суфикс... Например -www.altlinux.ru тут altlinux.ru - это домен, который имеет суфикс ru

А вот пример с самбой. Вот кусок файла /etc/krb5.conf


Цитировать
default_realm = ПОЛНОЕ_ИМЯ_ДОМЕНА_например_MYDOMAIN.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
ПОЛНОЕ_ИМЯ_ДОМЕНА = {
  kdc = имя_контроллера_домена.полное_имя_домена:88
  admin_server = имя_контроллера_домена.полное_имя_домена:749
  default_domain = полное_имя_домена
}

[domain_realm]
.полное_имя_домена = ПОЛНОЕ_ИМЯ_ДОМЕНА
полное_имя_домена = ПОЛНОЕ_ИМЯ_ДОМЕНА

а вот кусок /etc/samba/smb.conf

Цитировать
workgroup = КОРОТКОЕ_ИМЯ_ДОМЕНА_например_MYDOMAIN
        netbios name = желаемое_имя_рабочей_станции_например_computer1
        security = ads
        password server = имя_контроллера_домена.полное_имя_домена_например_controller.mydomain.local
        realm = ПОЛНОЕ_ИМЯ_ДОМЕНА


Цитировать
у меня просто интерес к самбе...

У меня тоже. Тогда вам может пригодиться:

http://www.altlinux.org/Участник:Alexandr/altinlan

Скрипт будет делать все то, что написанно в этой статье. Как только он будет готов и оттестирован, я выложу его для общего пользования ;)
« Последнее редактирование: 27.02.2009 18:43:12 от Alexandr »
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн aus

  • Участник
  • *
  • Сообщений: 152
Задача: Найти все файлы, имеющие в названии i586, и скопировать их в другой каталог.
Пробую

cp `ls -l|grep i586` /tmp/test
cp: missing destination file operand after `/tmp/test'
Try `cp --help' for more information.

В чем загвоздка?







 
« Последнее редактирование: 18.03.2009 20:47:09 от Skull »

Оффлайн black

  • alt linux team
  • ***
  • Сообщений: 460
Re: Выборочное копирование по маске
« Ответ #12 : 18.03.2009 14:01:08 »
Отвечу немного невпопад.
Для этой операции обычно используют find
Например

find . -name "*i586*" -exec cp {} ~/tmp \;
ищет файлы с i586 внутри и копирует их в tmp в домашнем каталоге

Оффлайн andrew_b

  • Участник
  • *
  • Сообщений: 553
Re: Выборочное копирование по маске
« Ответ #13 : 18.03.2009 14:10:09 »
cp `ls -l|grep i586` /tmp/test
cp: missing destination file operand after `/tmp/test'
Try `cp --help' for more information.

В чем загвоздка?

Как вам кажется, подходит ли результат команды

ls -l|grep i586

в качестве параметра команды cp?

Оффлайн black

  • alt linux team
  • ***
  • Сообщений: 460
Re: Выборочное копирование по маске
« Ответ #14 : 18.03.2009 14:20:54 »
Скорее всего нет.
Хотя бы из того соображения, что есть ограничение на количество аргументов командной строки, а ls может выдать их очень много...