![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Для удаления символа новой строки | shihabvk | UNIX перспективных И опытных пользователей | 7 | 06-18-2009 08:44 AM |
| SED удалить символ [ ' | manishabh | Shell программирование и сценарии | 2 | 08-30-2008 12:28 AM |
| Как удалить посторонние характер | vsmurali | UNIX для чайников Вопросы И Ответы | 7 | 03-18-2008 12:57 PM |
| Попытка удалить один символ из строки | Iz3k34l | UNIX для чайников Вопросы И Ответы | 5 | 07-07-2007 02:29 PM |
| Удаление последнего символа линия | danhodges99 | Shell программирование и сценарии | 4 | 05-21-2003 10:30 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Нужно удалить первый символ из каждой третьей строке (или пересмотренного nawk).
Вот данные, я начиная с (например, вывод из двух комбинированных запросов файла: 284K) Код:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||5555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2 ||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y|555-55-1111|SMITH|JOHN|||12 /23/1960|2|WH|||||||||Y 3000178|555-55-1112|2|7/23/2008|TEST|P.O. BOX 1112|TEMECULA|CA|92591||5555555555||||||||33|||1||1|3|||2|||||||||||||3|3||2| 2||||2||9||2|1|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|555-55-1112|SMITH|JACK|||12/8/1975|2|BL| ||||||||Y 3000317|555-55-1113|2|7/29/2008|TEST|P.O. BOX 1113|MORENO VALLEY|CA|92556||5555555555||||||||55|||1||4|1|||2|||||||||||||1|3||2|2|||| 2||9||1|0|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y|555-55-1113|SMITH|JOE|||11/28/1953|2|AO||||||| ||Y Потом выполните скрипт nawk как \ N необходима после # 103 и # 120 записей. (nawk-F scriptname> filename1) Код:
[
BEGIN {
FS="|"
}
{
OFS="|"
}
{
print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,
$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,
$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,
$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,
$100,$101,$102,$103,"\n",
$104,$105,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,
$117,$118,$119,$120,"\n"
}
END {}
В nawk скрипта производства (т.е. filename1) составляет: Код:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||5555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2 ||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y| |555-55-1111|SMITH|JOHN|||12/23/1960|2|WH|||||||||Y| 3000178|555-55-1112|2|7/23/2008|TEST|P.O. BOX 1112|TEMECULA|CA|92591||5555555555||||||||33|||1||1|3|||2|||||||||||||3|3||2| 2||||2||9||2|1|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y| |555-55-1112|SMITH|JACK|||12/8/1975|2|BL|||||||||Y| 3000317|555-55-1113|2|7/29/2008|TEST|P.O. BOX 1112|MORENO VALLEY|CA|92556||555555555||||||||55|||1||4|1|||2|||||||||||||1|3||2|2|||| 2||9||1|0|2|2|2|2|3|0||5|2|||||||||88|||2||3|2||||2|9|||||2||||9|A|||42|42||||||Y| |555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y| Эта проблема находится на третьей строке каждой записи, то nawk скрипт вставил дополнительный первый символ труб (т.е. |), и это вызвало большую панику с учетом моих потребностей в импорте. Теперь я уже пробовали различные SED Методы удаления основывается на первый символ в каждой строке 3 в течение всего файла, к сожалению, без успеха. Наконец, я пересмотрела nawk скрипт в попытке исключить дополнительные трубы характер, все без успеха. Код:
|555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y| Он должен быть: Код:
555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y| Обзор, мыслей и предложений, действительно приветствовали. Спасибо! |
|
||||
|
Вот их результаты: Код:
3000877|555-55-1111|2|7/30/2008|TEST|P.O. BOX 1111|PALM DESERT|CA|92211||555555555||||||||48|||1||1|3|||2|||||||||||||1|3||2|2 ||||2||9||3|1|2|2|2|1|3|0||5|2|||||||||88||3|2||3|2||||2|1|||6|5/31/2008|2||||9|AD|||42|42||||||Y| ^H|555-55-1111|SMITH|JOHN|||12/23/1960|2|WH|||||||||Y| ^H |
|
||||
|
Цитата:
Код:
BEGIN { FS = OFS = "|" }
{
print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,
$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,
$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,
$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,
$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,
$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,
$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,
$94,$95,$96,$97,$98,$99,$100,$101,$102,$103
print $104,$105,$106,$107,$108,$109,$110,$111,$112,$113,
$114,$115,$116,$117,$118,$119,$120
print ""
}
В первом Версия для печати \u003d "" Заявление было удалено, как он создает дополнительные / ненужные строки (т.е. разделитель). Спасибо! |
|
||||
|
Попробуйте это .... скажи мне, если это хорошо работает .....
AWK '( если (NR 3%! \u003d 0) ( Версия для печати ) еще ( для (i \u003d 1; I <\u003d Н.Ф.; I + +) ( если (I \u003d\u003d 1) ( printf ( "% S", substr ($ 1,2, длина ($ 1) -1)) ) еще ( printf ( "% S", $ I) ) ) printf "\ N" ) ) 'Файл Последний раз редактировалось vijay_0209; на 10-07-2008 01:09 AM.. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|