![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| в частности, изменить структуру, начиная со второй строки поиска шаблона | ИМАС | UNIX для чайников Вопросы И Ответы | 1 | 10-12-2008 02:19 PM |
| в частности, изменить структуру, начиная со второй строки поиска шаблона | ИМАС | UNIX для чайников Вопросы И Ответы | 2 | 10-12-2008 12:30 PM |
| Как можно удалить записи в файле соответствие шаблону? | mode09 | UNIX для чайников Вопросы И Ответы | 2 | 07-15-2008 02:53 PM |
| исключить колонн с подходящей строки шаблона | greptastic | UNIX для чайников Вопросы И Ответы | 5 | 06-30-2008 04:32 AM |
| План Multile поиск в одной строке, и удалить | sasree76 | Shell программирование и сценарии | 2 | 04-16-2008 03:12 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
комментарий / удалить определенный шаблон, начиная со второй строки в шаблон соответствия
Привет,
Я файл 1.txt со следующих позиций как показано на рисунке: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** В файле 2.txt меня есть следующие строки, как показано: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Я хочу взять на IP-адреса столбца из 1.txt и найдите его в 2.txt и замечаний дубликат вход со второго соответствуют шаблону. то есть, я должен иметь следующие результаты в 2.txt как показано: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Ниже приведен сценарий я писал, но он будет комментировать все повторяющиеся записи: Я в `кота 1.txt | светотеневую D" | "-f3` делать Кошка 2.txt |SED "S / ^ \ (.* \ | $ I \ |.*)/#/ G"> tmp.txt М. В. tmp.txt 2.txt готово Может ли кто-то руководство, как мне оставить первый дубликат въезда нетронутыми и комментарии / удалить из второго дублировать запись и так далее. ![]() Пожалуйста, не закрывайте эту нить, если вы не знаете ответа. Спасибо IMAS - |
|
||||
|
Это вопрос работы домой?
Если предположить, что это не так, то, что в реальном мире, проблемы свой вопрос? Привет |
|
||||
|
Да ваши предположения верны, и это реальная проблема мира
Что РМКО пытается сделать это, комментируя дубликат Ip нашла в текстовый файл, игнорируя первые случаи, чтобы быть действительным IP для Mac и действительна со второго года, комментируя появление дубликатов КП в начало строки. файл 1.txt со следующих позиций как показано на рисунке: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** файл 2.txt со следующих позиций как показано на рисунке: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Мне необходимо иметь следующие результаты в 2.txt как показано: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Правильный сценарий я написал это Я в `кота 1.txt | светотеневую D" | "-f3` делать Кошка 2.txt |SED "S / ^ \ (.* \ | $ I \ |.*)/# \ 1 / G"> tmp.txt М. В. tmp.txt 2.txt готово Но выше сценарий будет комментировать все случаи. Ваша помощь оценили. Спасибо IMAS - |
|
||||
|
AWK: Код:
nawk 'BEGIN{FS="|"}
{
if(NR==FNR)
a[$3]=0
else
{
a[$3]++
if(a[$3]>=2)
print "#"$0
else
print $0
}
}' 1.txt 2.txt
|
|
||||
|
Привет Summer_Cherry,
Миллион спасибо за предоставленную мне кусок кода, который будет представлять свои замечания, начиная со второго появления соответствует структуре от начала строки. intelsol2> кота 1.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 intelsol2> кота 2.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> nawk 'BEGIN (FS \u003d"|"} ( если (NR \u003d\u003d ПЧН) A [$ 3] \u003d 0 еще ( A [$ 3] + + если (A [$ 3]> \u003d 2) Версия для печати "#" $ 0 еще Версия для печати $ 0 ) ) '1.txt 2.txt> 3.txt intelsol2> кота 3.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> Кроме того, благодаря большой форум для Unix ребята "вы PPL рок!!"! Правила посещения, я пытался искать этот код, так как все выходные и пошел через SED Руководство http://www.grymoire.com/Unix/Sed. HTML "югу тема (/ 1, / 2 и т.д. Указание которой возникновение) однако был повезло в попытке всех проб и ошибок, метод. Также Летние Не могли бы вы объяснить мне код, который вы написали так, что я могу понять его лучше. Опять же благодаря много, и вы можете закрыть эту ветку. Спасибо IMAS - |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|