![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Стриптиз на одну строку с 2 пустые строки в файле | пьяный | Shell программирование и сценарии | 6 | 06-23-2008 08:14 AM |
| полоса первые 4 и последние 2 строки из файла с помощью Perl | meghana | Shell программирование и сценарии | 10 | 02-01-2008 09:01 PM |
| Как вы буферной струились линий? | jjinno | Shell программирование и сценарии | 14 | 07-19-2007 03:36 PM |
| Стриптиз 3 строки заголовка и 4 прицепа линий | ganesh123 | Shell программирование и сценарии | 9 | 03-10-2007 05:15 PM |
| Результат каждой определенной линии. | munnabhai1 | Shell программирование и сценарии | 1 | 04-06-2006 01:09 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Как Газа линий покинуть струились ЭДИ Результат
К настоящему прилагается струились ЭДИ ANSI X12 производства, где сегмент терминаторе / разделителем является тильда ~ характер.
Можно ли сделать следующее псевдо-код в Unix-скрипта (с помощью или SED, AWK и / или grep)? Открыть файл StreamedOutput.txt Поиск по ISA и удалять данные, вплоть до символа тильда ~ Поиск по ОО и удалять данные, вплоть до символа тильда ~ И написать 'среднего' бит данных в том же файле. Иными словами я хочу сдирать первый (ISA) и последний сегмент (GS) в этом файле все до тильда и оставьте мне немного данных в центре. Я пытался использовать следующий скрипт, но не имеющие много радости; X \u003d `grep-Н" МСА "StreamedOutput | светотеневую Д" ~ "-f1` Y \u003d `grep-Н" ОО "StreamedOutput | светотеневую Д" ~ "-f1` A \u003d `Эхо $ X) (1 + | BC` B \u003d `Эхо $ (Y) -1 | BC` Эхо $ X $ Y $ в $ B SED -NE '$ (A), $ (B) P' StreamedOutput Если я unstreamed исходных данных она выглядит; ISA * ДРЧ СНВ * * США * 0050000013 ~ Б.А.1 * Y ** A * США * 0050000013 ТН *** **** Federal Express ~ Р.З. YNQ * * Y ~ YNQ * QQ * Y ~ DTM * 274 * 081015 ~ N1 * EX * Смит И племянник, Inc * 24 * 510123924RT ~ N2 * 1 * 9013995343 ~ N3 * ИСТ ХОЛМС RD ~ N4 * * Мемфис Т.Н. * 38118 * US ~ N1 ** Carey STEVE ~ N3 * 1720 ВОСТОК Blackhawk DR ~ N4 * * PHOENIX AZ * 85024 * US ~ N1 * * FW Federal Express * 24 ~ N3 * 123 Главное ~ N4 * * MEMPHIS Т.Н. США ** ~ L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * костями пластины, шурупы И ногти И другие интегрированной ОС * * D ~ L13 * A * 9021.31.0000 * 10 *** 1000 **** K * 0 * Искусственные суставы И частях И аксессуары * ОС * F ~ L13 * A * 9021.31.0000 * 10 *** 1000 **** K * 0 * Искусственные суставы И частях И аксессуары * ОС * D ~ ОО TRL * * * КОНЕЦ США * 0050000013 ~ И в результате я хочу это; Б.А.1 * Y ** A * США * 0050000013 ТН *** **** Federal Express ~ Р.З. YNQ * * Y ~ YNQ * QQ * Y ~ DTM * 274 * 081015 ~ N1 * EX * Смит И племянник, Inc * 24 * 510123924RT ~ N2 * 1 * 9013995343 ~ N3 * ИСТ ХОЛМС RD ~ N4 * * Мемфис Т.Н. * 38118 * US ~ N1 ** Carey STEVE ~ N3 * 1720 ВОСТОК Blackhawk DR ~ N4 * * PHOENIX AZ * 85024 * US ~ N1 * * FW Federal Express * 24 ~ N3 * 123 Главное ~ N4 * * MEMPHIS Т.Н. США ** ~ L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * костями пластины, шурупы И ногти И другие интегрированной ОС * * D ~ L13 * A * 9021.31.0000 * 10 *** 1000 **** K * 0 * Искусственные суставы И частях И аксессуары * ОС * F ~ L13 * A * 9021.31.0000 * 10 *** 1000 **** K * 0 * Искусственные суставы И частях И аксессуары * ОС * D ~ |
|
||||
|
Попробуйте сначала без цветных фрагментов кода
Код:
awk '/^ISA/||/^GS/{next}{print}' file > newfile && mv newfile > file
|
|
||||
|
Или один grep
Код:
grep -v '^[ISA|GS]' file |
|
||||
|
Спасибо за ответы, однако, каким будет ваш код изменится, если данные струились (т.е. один длинный ряд данных, в данном случае), поэтому разделитель разделения сегментов является тильда ~ знаков.
|
|
||||
|
Попробуйте AWK:
Код:
awk -F'~' '{for(i=1;i<NF;i++){if($i !~ /^[ISA|GS]/)printf $i FS}}'
|
|
||||
|
Привет Danmero, было бы слишком много требовать разбивка кода и его намерений / значение, как я пытался код, используя комбинацию и grep SED? Спасибо!
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|