![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| UNIX для чайников Вопросы И Ответы Если вы не уверены в том, где разместить UNIX или Linux вопрос, задайте его здесь. Все UNIX и Linux приветствуем новичков!! |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Удаление конкретных линий | catgovind | Shell программирование и сценарии | 3 | 04-30-2008 06:40 AM |
| Как прочитать нужный раздел и изменять в | kn.naresh | Shell программирование и сценарии | 2 | 04-18-2008 01:30 AM |
| Печать на линиях с конкретными AWK Н.Ф. | jehrome_rando | Shell программирование и сценарии | 1 | 03-13-2007 04:23 AM |
| Просмотр конкретных линий | dakid | UNIX для чайников Вопросы И Ответы | 3 | 05-25-2006 04:25 AM |
| Как вам определенные строки в файле? | hedgehog001 | UNIX для чайников Вопросы И Ответы | 2 | 08-23-2005 01:04 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Как использовать SED изменить конкретные направления
Может ли кто-нибудь сказать мне, как я могу использовать SED изменить следующим конкретным направлениям линий? файл следующим образом:
"TEST/SI1573.lab" 3670 8920 ч # 8920 9530 HH 9530 10694 IH . "TEST/DR1/FAKS0/SI2203.lab" 9730 9580 ч # 9580 9840 DH 9840 10652 IX 10652 11997 р ........ Я хочу изменить первое областях 0 из направлений которой придерживается линии началось с "TEST. Файл после операции должны быть: "TEST/SI1573.lab" 0 ч # 8920 8920 9530 HH 9530 10694 IH . "TEST/DR1/FAKS0/SI2203.lab" 0 ч # 9580 9580 9840 DH 9840 10652 IX 10652 11997 р ........ может кто-нибудь сказать, моя, как это сделать? Спасибо заранее. |
|
||||
|
Код:
sed -e '/^"TEST/{p;N;s/.*\n[0-9]*/0/;}' filename
Это выглядит для "ТЕСТ" (с открытием двойная кавычка) в начале строки. Если обнаружено, что она печатает строку (P), И добавляет следующую строку в структуру пространства (Н). Это приводит к структуре пространства содержать две строки; тестирования линии и следующие строки, разделенные символом новой строки. Затем она заменяет (S// /) В первой строке в структуре пространства, строки, а также любые номера только после новой, с нуля. На этом этапе мы сделали; то, что остается в структуре пространства будут напечатаны как обычно. SED Синтаксис очень лаконичный, если у вас нет особых причин для использования SED Для этого, возможно, эквивалентную AWK или Perl Сценарий был бы более оперативно обновлять систему (особенно если вы не очень знакомы с SED). Последний раз редактировалось эры; на 05-18-2008 06:46 AM.. Причина: Может быть, предпочитают AWK Perl или после того, как все ...? |
|
||||
|
Спасибо, это работает.
Интересно, каким образом использовать AWK для этого. |
|
||||
|
Код:
awk '/^"TEST/ { t=1 ; print; next }
t==1 { $1 = "0"; t=0; }1' filename
|
|
||||
|
Спасибо, эпоха.
Считаете ли вы, что вы можете рекомендовать мне книги или websit? Я хотел бы узнать больше о скрипте. Я всегда сталкиваются с некоторыми проблемами, и не могут выяснить самостоятельно. |
|
||||
|
Один из моих личных избранном являются Kernighan И в Судак В окружающей среде Unix Программирование но он очень старый, так что некоторые из периферической подробности изменились довольно много с тех пор. Еще одно многолетнее является Friedl в Освоение регулярных выражений, Хотя вы, возможно, борьба с ним в первом случае, если вы не знакомы с инструментами, он охватывает.
В O'Reilly SED И AWK Книга является хорошим введением в SED и AWK, хотя Есть множество он-лайн уроки, которые, вероятно, точно так же, как хорошее. В разделе FAQ больше связей; Я новичок в Unix. О книгах, которые я должен идти? - В UNIX Форумы |
![]() |
| Закладки |
| Теги |
| Regex, регулярные выражения |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|