![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| So entfernen Sie neue Zeichen | shihabvk | UNIX für Fortgeschrittene und Experten | 7 | 06-18-2009 08:44 AM |
| sed zu entfernen Charakter [ ' | manishabh | Shell Programmierung und Scripting | 2 | 08-30-2008 12:28 AM |
| So entfernen Sie fremde Zeichen | vsmurali | UNIX for Dummies Questions & Answers | 7 | 03-18-2008 12:57 PM |
| Der Versuch, um einzelne Zeichen aus einer Zeile | Iz3k34l | UNIX for Dummies Questions & Answers | 5 | 07-07-2007 02:29 PM |
| Entfernen Sie letzte Zeichen der Linie | danhodges99 | Shell Programmierung und Scripting | 4 | 05-21-2003 10:30 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Notwendigkeit der Beseitigung der ersten Buchstaben von jedem dritten Zeile (oder überarbeitete nawk).
Hier sind die Daten Ich bin mit (Beispiel-Ausgabe von zwei kombinierte Abfragen, Dateigröße: 284k) Code:
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 Dann habe ich das folgende Skript nawk als \ n erforderlich ist nach der # 103 und # 120 Einträge. (nawk-f Skriptname> dateiname1) Code:
[
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 {}
Die nawk Skript-Ausgabe (dh dateiname1) ist: Code:
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| Das Problem ist in der dritten Zeile der einzelnen Einträge, die nawk-Skript hat einen zusätzlichen erste Zeichen Rohr (dh |) und es ist zu viel Chaos, da meine Einfuhrbedingungen. Jetzt habe ich versucht, verschiedene sed Methoden zur Beseitigung auf der Grundlage der ersten Zeichen eines jeden 3. Zeile in der gesamten Datei, leider ohne Erfolg. Schließlich habe ich die überarbeitete nawk Skript versuchen, um die zusätzlichen Zeichen, alle ohne Erfolg. Code:
|555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y| Es muss sein: Code:
555-55-1113|SMITH|JOE|||11/28/1953|2|AO|||||||||Y| Review, Gedanken und Vorschläge sind wirklich erfreulich. Danke! |
|
||||
|
Hier ist die Ausgabe: Code:
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 |
|
||||
|
Zitat:
Code:
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 ""
}
Die erste print \u003d "" wurde entfernt, da sie die Schaffung eines zusätzlichen / unnötigen Zeilenvorschub (dh separator). Danke! |
|
||||
|
Versuchen Sie diese .... sagen Sie mir, wenn dies funktioniert .....
awk '( if (NR% 3! \u003d 0) ( ) sonst ( for (i \u003d 1; i <\u003d NF; i + +) ( if (i \u003d\u003d 1) ( printf ( "% s", substr ($ 1,2, length ($ 1) -1)) ) sonst ( printf ( "% s", $ i) ) ) printf "\ n" ) ) "-Datei Zuletzt bearbeitet von vijay_0209; am 10-07-2008 01:09 AM.. |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|