![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| UNIX перспективных И опытных пользователей Эксперт-на-экспертов. Узнайте современные UNIX, UNIX команды, Linux, операционные системы, системы управления, программирование, Shell, Shell скриптов, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Добавление блока в файл | ROOZ | Shell программирование и сценарии | 4 | 08-20-2008 05:34 PM |
| Как извлечь блок данных из файла | aoussenko | Shell программирование и сценарии | 4 | 06-26-2008 12:03 PM |
| Удаление текстовых блока в файл | andre123 | Shell программирование и сценарии | 1 | 02-27-2007 01:17 PM |
| Выберите последний блок из файла | misenkiser | Shell программирование и сценарии | 9 | 10-11-2006 10:32 AM |
| Экстракт блока в файл | sskb | UNIX для чайников Вопросы И Ответы | 5 | 10-25-2001 11:29 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
поможет получить блок из файла
Код:
<Connection^M
companyId="TCS"^M
connectionMode="client"^M
name="TCS_TEMP"^M
protocolVersion="4.2"^M
disableLogging="false"^M
</Connection>
<Connection^M
companyId="HCL"^M
connectionMode="client"^M
name="HCL_RSDC02"^M
protocolVersion="4.2"^M
disableLogging="false"^M
</Connection>
<Connection^M
companyId="SCB"^M
connectionMode="server"^M
name="SCB_ERSDC02"^M
protocolVersion="4.1"^M
disableLogging="false"^M
connectionIntervals="08:00:00,18:00:00"^M
connectAtStartup="true"^M
</Connection>
<Connection^M
companyId="SAT"^M
connectionMode="client"^M
name="SAT_RSDC02"^M
protocolVersion="4.0"^M
disableLogging="false"^M
</Connection>
Я имею выше содержание в одном файле. если я grep на имя \u003d "SCB_ERSDC02" он должен отображать соответствующий блок из <Связь ^ M до </ Связь>. Любые команды ...? Код:
output should be
<Connection^M
companyId="SCB"^M
connectionMode="server"^M
name="SCB_ERSDC02"^M
protocolVersion="4.1"^M
disableLogging="false"^M
connectionIntervals="08:00:00,18:00:00"^M
connectAtStartup="true"^M
</Connection>
|
|
||||
|
Использование nawk / или usr/xpg4/bin/awk на Solaris. Код:
awk '
/<Connection/{i=0}
{a[++i]=$0}
/SCB_ERSDC02/{f=1}
/<\/Connection>/ && f {for(j=1;j<=i;j++){print a[j]};exit}
' file
Привет |
|
||||
|
привет,
Есть ли способ пройти "SCB_ERSDC02" в командной строке аргументы. B'cos когда я пройти ее не давая какой-либо вывод. |
|
||||
|
Сохраните этот скрипт, делаете его исполняемым с Chmod: Код:
#!bin/sh
awk -v var="$1" '
/<Connection/{i=0}
{a[++i]=$0}
$0 ~ var {f=1}
/<\/Connection>/ && f {for(j=1;j<=i;j++){print a[j]};exit}
' file
и вызов скрипта следующим образом: Код:
./scriptname SCB_ERSDC02 Привет |
|
||||
|
Очень спасибо!
|
|
||||
|
Допустим, если я хочу искать Имя \u003d "HCL_RSDC02", как этого добиться?
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|