![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| слияния двух файлов | vakharia Махеш | Shell программирование и сценарии | 7 | 09-15-2008 01:32 PM |
| Слияние массивов | jakSun8 | Shell программирование и сценарии | 4 | 07-02-2008 12:13 AM |
| Слияние двух файлов | venommaker | UNIX для чайников Вопросы И Ответы | 4 | 01-10-2008 08:15 AM |
| Слияние информация | Манан | Shell программирование и сценарии | 3 | 05-20-2006 08:51 AM |
| Слияние Справка | kumarc | Shell программирование и сценарии | 3 | 05-04-2006 03:24 PM |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
||||
|
Объединение строк
Привет, ребята,
Желаю вам всем очень счастливого Нового Года!!!. Спасибо заранее. Я хочу, чтобы прочитать файл и объединить строк, которые '\ N' в нем. В строке может быть> 50000 байт. Этот сценарий должен объединить все строки до следующей строки начинается со слова "Вид | '. шт. Тип | билеты | TradeID | 42224A | SystemID | DDDD61266 | SourceSystem | RMS | Версия | 5 | LatestVersionYN | Y | Counterpa rty | ОФ | DBLegalEntity | Лондон | Примечания | CAL событий добавил | продавца | DHX | LastUpdated | DEC 2008 18:31 : 40 | Action | Exp | DealCaptureSystem | Продажи | CustomerSourceSystem | RMS | клиентов | AUGS | ActionEffectiveDa Te | DEC 2008 00:00:00 | BookingLocation | Лондон | EnteredBy | GONU | MarkupAmt | 100 | MarkupCcy | KEX | PremiumCurrency | EUR | Premi umAmount | 000 | PremiumDate | DEC 2008 | PremiumHasPaidYN | N | BookingDetails | 9000/mihl Клиент продает KEZUSD ул исх 1,3724 Залоговое Село находится на ST 52 Селе, начиная Тип | FxDiscreteDNT | TradeID | SSA32553H | SystemID | GGT04481 | SourceSystem | RMS | SourceSystemBook | OT | Книги | OT | BookBranchParent | Переход | Версия | 8 | LatestVersionYN | Y | Контрагент | Д.р. | Положение | KnockedOut | IsLiveYN | N | DBLega lEntity | Лондон | LastUpdated | янв 2009 00:26:35 | Action | KnockedOut | CounterpartySourcesystem | RMS | TradeDate | июл 2006 | ProductID | KKI99106 | StructureID | DDS32553 | DealCaptureSystem | RMS | CustomerSourceSystem | RMS | клиентов | ESL | PricingSite | Вариант | UnderCurrency1 | JPY | AccCurrency1 | США | UpBarrier1 | 1.5 | LowBarrier1 | 1 | UnderCurrenc Y2 | JPY | AccCurrency2 | Ч | UpBarrier2 | 1.64 | LowBarrier2 | 1.49 | UnderCurrency3 | EUR | AccCurrency3 | JPY | UpBarrie r3 | 175 | LowBarrier3 | 105 | LastFixed В outout следует Ниже записи должны быть в одной строке. Тип | билеты | TradeID | 42224A | SystemID | DDDD61266 | SourceSystem | RMS | Версия | 5 | LatestVersionYN | Y | Counterpa rty | ОФ | DBLegalEntity | Лондон | Примечания | CAL событий добавил | продавца | DHX | LastUpdated | DEC 2008 18:31 : 40 | Action | Exp | DealCaptureSystem | Продажи | CustomerSourceSystem | RMS | клиентов | AUGS | ActionEffectiveDa Te | DEC 2008 00:00:00 | BookingLocation | Лондон | EnteredBy | GONU | MarkupAmt | 100 | MarkupCcy | KEX | PremiumCurrency | EUR | Premi umAmount | 000 | PremiumDate | DEC 2008 | PremiumHasPaidYN | N | BookingDetails | 9000/mihl Клиент продает KEZUSD ул исх 1,3724 Залоговое Село находится в 52 ST Селе, начиная Тип | FxDiscreteDNT | TradeID | SSA32553H | SystemID | GGT04481 | SourceSystem | RMS | Версия | 8 | LatestVersionYN | Y | Контрагент | Д.р. | DBLegalEntity | Лондон | LastUpdated | янв 2009 00:26:35 | Action | KnockedOut | DealCaptureSystem | RMS | CustomerSourceSystem | RMS | клиентов | ESL | PricingSite | O ption | UnderCurrency1 | JPY | AccCurrency1 | США | UnderCurrency3 | EUR | AccCurrency3 | JPY | UpBarrier3 | 175 | LowBarri er3 | 105 | LastFixed Я попытался с помощью нижеуказанному AWK скрипта, но не может справиться> 20000 байт. Кроме того, используя в качестве String 'LINE_BREAK' для идентификации строк получил объединены. FileName \u003d LINE_TEST.TXT FileName1 \u003d O_LINE_TEST.TXT Выходной_файл \u003d OUTPUT_WITHOUT_LINE_BREAK.tmp если [[-E $ FileName]], затем SED "S /% / доли / G" $ FileName> $ FileName1 # # Чтобы удалить '%', как 'AWK' не может справиться с ней. / usr/xpg4/bin/awk 'NR \u003d\u003d 1 (printf $ 0;) следующая ! / ^ TradeType / (printf "LINE_BREAK" $ 0;) следующая (printf "\ N" $ 0) END (печати "") '$ FileName1> $ выходной_файл FI |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|