![]() |
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.
|
|
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 |
| ersetzt mehrere Zeilen mit der Zeile | siba.s.nayak | Shell Programmierung und Scripting | 3 | 05-28-2008 02:43 AM |
| mit tr, um mehrere Zeilen der Ausgabe in einer Zeile | otes4 | Shell Programmierung und Scripting | 3 | 02-18-2008 11:30 AM |
| Konkatenation mehrere Zeilen zu einer Zeile, wenn mit Muster | phixsius | Shell Programmierung und Scripting | 13 | 01-24-2008 11:02 PM |
| Split eine große Übereinstimmung in mehrere Zeilen mit 120 Zeichen sed? | jerome_1664 | Shell Programmierung und Scripting | 2 | 08-17-2006 12:03 PM |
| Die Teilung einer einzigen Zeile in mehrere Zeilen | thanuman | Shell Programmierung und Scripting | 4 | 02-23-2005 04:56 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Hi Guys,
Ich brauche eine Hilfe. Ich bin ziemlich neu in der Shell-Ebene Programmierung. Ich habe versucht, um einen langen Linien zu einem mehrere Zeilen mit wenigen Bedingungen. Ich Goggle für den Code ein, und fand einige Auszüge und versucht, geändert, aber ich habe einige seltsame Probleme zu. Ich habe die Aufteilung der Linien ist, wenn mehr als 120 Zeichen, dann habe ich zu, so dass sie sich durch Hinzufügen von "\" am Ende von rund 120. Charakter. Hinweis: Es kann nur getrennt in Abgrenzung Positionen wie Leerzeichen oder Komma. Und hier ist der Code für die #! / bin / sh awk '( if (length ($ 0)> 120) ( str \u003d $ 0; i \u003d 0; while (length (str)> 120) ( j \u003d 0; for (m \u003d 1; m <\u003d 120; m + +) ( Schreiben \u003d substr ($ 0, i + m, 1); # printf ( "% s \ n", Schreiben); if (Schreiben !\u003d",") dann sonst ( j \u003d m; # Printf ( "% s \ n", substr ($ 0, i +1, j)); ) fi if (Schreiben! \u003d "") dann sonst (J \u003d m;) fi ) printf ( "% s / \ n", substr ($ 0, i +1, j)); i + \u003d j; str \u003d substr ($ 0, i, length ($ 0)); ) if (length (str)> 1) printf ( "% s \ n", substr (str, 2, length (str))); ) sonst ( print $ 0 ) ) 'Myfile.txt Aber mein Problem war, dass die genannte Voraussetzung ist, wenn in gebucht werden. Wenn ich zur Arbeit mit gleich und setzen Sie den Ausdruck nach ist es nicht ordnungsgemäß funktioniert. Ich war auch nicht in der Lage, den Ausdruck oder für Komma-und Raumfahrt Ich muss auch das Programm, das kann wieder den gleichen Vorgang. Ich auch einige Tutorials zu sed aber auch auf seine sehr verwirrend für neue Benutzer ![]() ![]() |
|
||||
|
Alte C-Programmierer, oder? Willkommen bei High-Level-Sprache, wo Sie müssen nicht neu erfinden strlen in jedem Projekt.
Mann fach perl -pe 's / (. (1119) [,]) / \ 1 \ \ \ n / g' Ich verstehe nicht, die Frage nach OR. Was haben Sie, und nicht, wie es funktioniert? Code:
if (letter == " " || letter == ",") |
|
||||
|
Hi
Vielen Dank für die Antwort. Ja, ich habe auf C und VB, aber nicht in dieser Shell-Programmierung. Und größte Problem für mich auf dieser Programmierung ist, dass sie kaum mir Fehlermeldung und ich kann nicht den Zustand der Debug-Modus. Für ODER Logik habe ich versucht Code:
if (letter = " " -o letter = ",") Und ich auch gelesen, dass für gleich haben wir für den Single '\u003d' nicht so'\u003d\u003d'' wie C + + Ist diese Zeile nicht gleich wie mir? Code:
perl -pe 's/(.{1,119}[ ,])/\1\\\n/g'
a) um die Saiten, haben wir die "am Anfang und am Ende des Befehls b) alle Argumente werden sollten getrennt von / Ich weiß wirklich nicht, etwas neben die von diesem Kodex ![]() ![]() |
|
||||
|
Sie wurden Lesung Shell-Programmierung Tutorials (und möglicherweise C-Shell, wenn sie Beratung runden Klammern in der wenn -, Die sich von der Bourne-Shell, der Art, wie Java ist ganz im Gegensatz zu JavaScript, die aber nicht ganz so nicht), aber das Programm, das Sie geschrieben haben ist in der awk Sprache, die ist gar nicht die gleiche Sache. Vergleichen Sie, wie können Sie eine DLL in einer anderen Sprache von einem C-Programm. Aber mit Skripten, die Quelle kann in zwei verschiedenen Sprachen, und oft ist - Sie häufig die kleinen awk oder sed oder Perl oder TCL oder ... andere Skripte in Shell-Skripte, wenn die Shell die eigenen Syntax oder Einrichtungen nicht mit dem Problem Raum gut genug.
Der Perl Programm das tut, was Ich kann mir vorstellen, Ihre spez sagt sollte es tun. Probieren Sie es aus und sehen. Es ersetzt ein Vielfaches von 119 oder weniger charactes gefolgt von einem Leerzeichen oder ein Komma mit der gleichen Zeichenfolge plus einem Backslash und einem Zeilenumbruch. Man könnte das auch bei sed oder awk, Wenn auch nicht ganz so prägnant, das Konzept hier ist ein Regulärer Ausdruck, Ist eine Einrichtung, die alle diese Sprachen bieten. (Ich glaube, Sie haben es in VB, zu, und es gibt C-Bibliotheken können Sie, wenn Sie möchten.) Lesen Sie auf, dass es ein sehr nützliches und vielseitiges Werkzeug, ganz unabhängig von einer bestimmten Sprache. |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|