
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.11.2006, 13:40:20
|
|||
|---|---|---|---|
|
|||
преобразование файла (редактирование) |
|||
|
#18+
есть такой файл 2006-10-24 00:01:19 CVB00 2000010 *** AIS - alarm indication signal |Port 235 | 2006-10-24 00:01:22 CVB00 2000010 --- AIS - alarm indication signal |Port 235 | 2006-10-24 00:01:22 CVB00 2000010 *** AIS - alarm indication signal |Port 235 | 2006-10-24 00:01:23 CVB00 2000010 --- AIS - alarm indication signal |Port 235 | 2006-10-24 09:45:04 cvb00 1000310 *** Wrong IVx identity |Board 2 | нужно что-бы выглядело так 2006-10-24 00:01:19 CVB00 2000010 *** Port 235 AIS - alarm indication signal 2006-10-24 00:01:22 CVB00 2000010 --- Port 235 AIS - alarm indication signal 2006-10-24 00:01:22 CVB00 2000010 *** Port 235 AIS - alarm indication signal 2006-10-24 00:01:23 CVB00 2000010 --- Port 235 AIS - alarm indication signal 2006-10-24 09:45:04 cvb00 1000310 *** Board 2 Wrong IVx identity с помощью этого не получается, в чем ошибка $ awk '{printf("%s %-10s %s\n",substr($0,0,37),$2,substr($0,39))}' FS="|" t.dat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2006, 20:20:12
|
|||
|---|---|---|---|
преобразование файла (редактирование) |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. There Ain't No Such Thing As A Free Lunch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2006, 12:55:30
|
|||
|---|---|---|---|
преобразование файла (редактирование) |
|||
|
#18+
НаташаXX, Ваша ошибка в том, что второй substr у Вас базировался тоде на $0, что неверно надо было так awk '{printf("%s %-10s %s\n",substr($0,0,37),$2,substr($1,39))}' FS="|" хотя я не люблю считать длинные цифирки типа 37,39 и сделал бы так: awk -F"|" '{i=match($0,"\\*\\*\\*|---");print substr($0,1,i+3) $2 substr($1,i+4,length($1))}' P.S. в перловом варианте лишний пробел получился, пофиксить надо. Типа того perl -ne 's/(.+)([*-]{3}) (.+)\|(.*)\|/\1\2 \4\3/; print;' <test.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 07:19:22
|
|||
|---|---|---|---|
|
|||
преобразование файла (редактирование) |
|||
|
#18+
--null--НаташаXX, Ваша ошибка в том, что второй substr у Вас базировался тоде на $0, что неверно надо было так awk '{printf("%s %-10s %s\n",substr($0,0,37),$2,substr($1,39))}' FS="|" хотя я не люблю считать длинные цифирки типа 37,39 и сделал бы так: awk -F"|" '{i=match($0,"\\*\\*\\*|---");print substr($0,1,i+3) $2 substr($1,i+4,length($1))}' P.S. в перловом варианте лишний пробел получился, пофиксить надо. Типа того perl -ne 's/(.+)([*-]{3}) (.+)\|(.*)\|/\1\2 \4\3/; print;' <test.txt Я поняла ошибку, но %-10 s не работает, т.е. $2 выводит 2006-10-24 00:01:19 CVB00 2000010 2006-10-24 00:01:22 CVB00 2000010 вместо Port 235 AIS Port 235 AIS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 07:26:48
|
|||
|---|---|---|---|
|
|||
преобразование файла (редактирование) |
|||
|
#18+
--null--НаташаXX, Ваша ошибка в том, что второй substr у Вас базировался тоде на $0, что неверно надо было так awk '{printf("%s %-10s %s\n",substr($0,0,37),$2,substr($1,39))}' FS="|" хотя я не люблю считать длинные цифирки типа 37,39 и сделал бы так: awk -F"|" '{i=match($0,"\\*\\*\\*|---");print substr($0,1,i+3) $2 substr($1,i+4,length($1))}' P.S. в перловом варианте лишний пробел получился, пофиксить надо. Типа того perl -ne 's/(.+)([*-]{3}) (.+)\|(.*)\|/\1\2 \4\3/; print;' <test.txt Я поняла ошибку, но %-10 s не работает, т.е. $2 выводит 2006-10-24 00:01:19 CVB00 2000010 2006-10-24 00:01:22 CVB00 2000010 вместо Port 235 AIS Port 235 AIS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 07:50:08
|
|||
|---|---|---|---|
|
|||
преобразование файла (редактирование) |
|||
|
#18+
НаташаXX[quot --null--]НаташаXX, Ваша ошибка в том, что второй substr у Вас базировался тоде на $0, что неверно надо было так awk '{printf("%s %-10s %s\n",substr($0,0,37),$2,substr($1,39))}' FS="|" хотя я не люблю считать длинные цифирки типа 37,39 и сделал бы так: awk -F"|" '{i=match($0,"\\*\\*\\*|---");print substr($0,1,i+3) $2 substr($1,i+4,length($1))}' P.S. в перловом варианте лишний пробел получился, пофиксить надо. Типа того perl -ne 's/(.+)([*-]{3}) (.+)\|(.*)\|/\1\2 \4\3/; print;' <test.txt Спасибо, вы все такие умнички ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=25&mobile=1&tid=1488759]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 184ms |
| total: | 258ms |

| 0 / 0 |
