![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Разбор файла для отчета (String разбора и расщепления) | umar.shaikh | Shell программирование и сценарии | 8 | 03-02-2009 01:38 AM |
| Парсинг фиксированной длины поля с yacc / зубров | sungita | Программирования высокого уровня | 1 | 01-27-2009 11:27 AM |
| Читать строку с ведущими пробелами, и найти длину строки | dayamatrix | UNIX для чайников Вопросы И Ответы | 2 | 11-13-2008 10:08 AM |
| Разбор запись переменной длины | Колючка | UNIX для чайников Вопросы И Ответы | 17 | 10-01-2004 08:37 AM |
| Разбор данных, и при сохранении полной длины переменной | app4dxh | Shell программирование и сценарии | 3 | 11-22-2002 12:04 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Разбор длиной 286 строка символов
Привет друзья!
Я имею. Текстовый файл, который имеет 13000 записей. Каждая запись 278 символов длиной. Я использую ниже код, чтобы извлечь строки и занимает почти 10 минут. Любое предложение, пожалуйста. Кошка filename.txt | читать в то время как линия делать F1 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,1,9))'` f2 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,10,20))'` F3 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,30,50))'` f4 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,80,10))'` f5 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,90,50))'` f6 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,140,10))'` F7 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,150,50))'` F8 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,200,10))'` F9 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,210,50))'` F10 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,260,10))'` F11 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,270,8))'` F12 \u003d `Эхо $ линия | AWK '(печати substr ($ 1,278,8))'` S1 \u003d `Эхо $ f1" | "$ f2" | "$ F3" | "$ F4" | "$ f5" | "` s2 \u003d `Эхо $ f6" | "$ f7" | "$ F8" | "` s3 \u003d `Эхо $ F9" | "$ F10" | "` S4 \u003d `Эхо $ F11" | "$ F12` Эхо $ S1 $ s2 $ s3 $ S4>> FinalResult.txt готово |
|
||||
|
А проще
Метод заключается в том, чтобы создать сценарий parse.awkКод:
{
f1=substr($1,1,9);
f2=substr($1,10,20);
f3=substr($1,30,50);
f4=substr($1,80,10);
f5=substr($1,90,50);
f6=substr($1,140,10);
f7=substr($1,150,50);
f8=substr($1,200,10);
f9=substr($1,210,50);
f10=substr($1,260,10);
f11=substr($1,270,8);
f12=substr($1,278,8);
OFS="|";
print f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12;
print "\n";
}
Код:
awk -f parse.awk filename.txt > FinalResult.txt |
|
|||||
|
|
||||
|
Привет PPL ..
Что делать, если я линия, как этот А BCD , которая свидетельствует о том, что первое поле f1 \u003d A, F2 \u003d F3 \u003d BCD т.е. второе поле пустым 6 символов. Итак, если я использую скрипт, я не смог получить поля в этом случае. Можете ли вы предложить в этом случае, как идти о нем? Cheers Амит |
|
|||||
|
|
||||
|
Спасибо всем вам за ваш ответ.
Я использовал предложение представленной cfajohnson и сейчас она занимает только 20 secconds при разборе 800,000 записей. Большое спасибо, Prashant |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|