LINUX.ORG.RU
ФорумAdmin

Bash sed


0

0

Народ хелп. Есть file1 и file2 Надо из содержимого file1 удалить содержимое file2 используя команду sed . Я не понимаю как сделать просто тока начал писать скрипты ещё не до конца в синтаксис вкуриваю.


Ответ на: комментарий от sdio

Нифига )

Смотри у меня в файле 1 строчка : Tue Dec 29 10:06:26 2009; TCP; eth0; 1500 bytes; from 192.168.7.61:22 to 192.168.7.7:1502; first packet во втором уже она выглядит по другому eth0; 1500 bytes; from 192.168.7.61:22 to 192.168.7.7:1502 И мне надо все строки по такой маске сравнить и удалить совпадения.

ThEEnD
() автор топика
Ответ на: комментарий от hizel

Блин я не умею писать ни на чем ))) признаюсь честно... Пытаюсь научится писать хотябы на bash народ зачем отвечать на пост если ты не по делу отвечаешь?

ThEEnD
() автор топика
Ответ на: комментарий от ThEEnD

Правильно соверуют, баш в этом смысле не сложнее питона, раз все-равно изучать.

PS: как это на sed делать понятия не имею, я не настолько олдскулен и такое делаю питоном.

alexru ★★★★
()
Ответ на: комментарий от alexru

Ладно

Один хер c++ учить хотел вот и сяду на праздники может придумаю чтонить .... Жалко что не смогли помочь ...

ThEEnD
() автор топика
Ответ на: Нифига ) от ThEEnD

Если из первого файла нужно удалить все строки, содержащие любые подстроки из второго файла - то тут sed не нужен, а нужен fgrep -v -f file2 file1

suzuki
()
Ответ на: Ладно от ThEEnD

> Один хер c++ учить хотел вот и сяду на праздники может придумаю чтонить .... Жалко что не смогли помочь ...

Гхм. А первый же ответ в тред - это что? ИМХО большей помощи просто желать не надо...

Голый баш сам по себе (даже в паре с sed'ом) - это беспомощная вещь. Вся мощь именно в использовании многих утилит. Рассматривай каталог /bin и /usr/bin как некую сишную тулкит-библиотеку с набором функций (а голый баш - как голый Си). И всё встанет на свои места - перестанешь стесняться использовать другие утилиты.

Slavaz ★★★★★
()

можно конечно и sed попробовать, только придется с циклами for заморачиваться. и в любом случае - использовать дополнительно минимум sort.

Если задача именно в обработке файлов, тосамый простой вариант с fgrep.

Если задача поучить баш, то лучше взять книгу, например ISBN 966-552-085-7 и выполнять примеры оттуда.

gserg ★★
()
Ответ на: комментарий от suzuki

fgrep -v -f file2 file1

Даже не на очень больших файлах может не хватить памяти или терпения пока такой греп отработает

sdio ★★★★★
()

sed 's/^.*\(from [0-9.]\+:[0-9]\+ to [0-9.]\+:[0-9]\+\).*$/\1/g' < file1 > file1-prime

Аналогично поступить с file2 --- это приведёт формат строк к единому виду. Затем полученные файлы сравнить diff'ом.

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

bakagaijin
()

Всем спасибо !!!

Послал си в жопу начал учить JAVA . По моему этот язык получит свой «оскар» намного раньше ))) потому что он во истину кросс платформенный и развитие его не тормозится ))) да и ваще сан молодцы )) а за ваши советы всем спасибо ) Я передумал делать греп по всему файлу я решил отправлять только по 1-й строчке из файла ) и в файле строчка эта самая первая так что у меня проблем нету )))

ThEEnD
() автор топика
Ответ на: комментарий от suzuki

Файл один отличается от файла 2

Файл один отличается от файла 2

ThEEnD
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.