Über die Shell eine Datei bearbeiten?
Über die Shell eine Datei bearbeiten?
Hallo,
ich suche derzeit eine möglichkeit über einen editor (Shell) eine Datei zu bearbeiten .
Es sollte möglich sein über ein Command (evtl mit pipes) die Datei zu öffnen etwas ans ende einzufügen oder etwas zu suchen und dann zu bearbeiten oder zu löschen nach denn änderungen die datei zu speichern und zu schließen.
Ist das über eine verkettung von Commands machbar oder sollte ich doch lieber perl benutzen über die shell würde das einiges an arbeit ersparen.
Vielen dank im vorraus.
Grezz Badgott
ich suche derzeit eine möglichkeit über einen editor (Shell) eine Datei zu bearbeiten .
Es sollte möglich sein über ein Command (evtl mit pipes) die Datei zu öffnen etwas ans ende einzufügen oder etwas zu suchen und dann zu bearbeiten oder zu löschen nach denn änderungen die datei zu speichern und zu schließen.
Ist das über eine verkettung von Commands machbar oder sollte ich doch lieber perl benutzen über die shell würde das einiges an arbeit ersparen.
Vielen dank im vorraus.
Grezz Badgott
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Mit ex kann man sowas auch machen, hier eine Hilfe-Seite:
http://www.unix.org.ua/orelly/unix/vi/ch07_04.htm
Ganz kleines Beispiel von mir: ich habe eine Textdatei, in der ich die Zahlen 50000000 durch 10000000 on-the-fly ersetzen will:
(ist jetzt aber nur schnell hingepinnt, also ungetestet).
gruss, mistersixt.
http://www.unix.org.ua/orelly/unix/vi/ch07_04.htm
Ganz kleines Beispiel von mir: ich habe eine Textdatei, in der ich die Zahlen 50000000 durch 10000000 on-the-fly ersetzen will:
Code: Alles auswählen
ex -s - textdatei.txt <<__EOF__
g/50000000/ s/50000000/10000000/
:wq
__EOF__
gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Ja, sicher dochSavar hat geschrieben:jaja.. Werbung muss schon sein
Da hast du wohl recht.. obwohl ich mich mit der grausigen Syntax von so lustigen Tools wie sed nie anfreunden konnte.Savar hat geschrieben:auch wenn ich eher zu Shellskripten raten würde.. die funktionieren eher überall als Perl, Python oder Ruby
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
was mich manchmal an shellskripten stört, die auf vermeintliche "standart"-utilities zurückgreifen, ist der fakt das diese standarts halt manchmal nicht existieren
Ich meine z.b. diese nervigen Sachen wenn ein Tool wie sed auf AIX etwas anders arbeitet wie auf Linux oder so. Meistens benutzt man ja auch eine ganze Toolchain, also viele kleine Programme die verpiped sind. Und wenn dann mal irgendwo ein programm streikt, weil IBM die Option, die ich nutzen will, nicht implementiert hat, dann bekomm ich anfälle..
Für Linux sind shellskripte total OK, naja bis auf die Syntax. Aber wenn man mehrere Betriebssyteme abdecken will, greife ich doch lieber auf eine Sprache zurück, die mir fest definierte Funktionen liefert. (das gilt natürlich nur für textverarbeitung und sysadmin sachen, wenn man dann sachen wie threads benutzt etc. is das wieder ne andere leidensgeschichte..)
mfg
mauser
Ich meine z.b. diese nervigen Sachen wenn ein Tool wie sed auf AIX etwas anders arbeitet wie auf Linux oder so. Meistens benutzt man ja auch eine ganze Toolchain, also viele kleine Programme die verpiped sind. Und wenn dann mal irgendwo ein programm streikt, weil IBM die Option, die ich nutzen will, nicht implementiert hat, dann bekomm ich anfälle..
Für Linux sind shellskripte total OK, naja bis auf die Syntax. Aber wenn man mehrere Betriebssyteme abdecken will, greife ich doch lieber auf eine Sprache zurück, die mir fest definierte Funktionen liefert. (das gilt natürlich nur für textverarbeitung und sysadmin sachen, wenn man dann sachen wie threads benutzt etc. is das wieder ne andere leidensgeschichte..)
mfg
mauser
nichts, ausser das in perl die regexps besser eingebunden sind als in den meisten anderen sprachen. das meinte ich aber nicht in meinem post von grade, falls du das darauf bezogen hattest.. ich meinte nicht das es einen unterschied zwischen der perl und der sed regexp syntax gibt, sondern von den kommandozeilen optionen zwischen tool X auf AIX (oder einem anderen unix.. ) und tool X auf linux.
Mauser, ich weiss ganz genau, was Du meinst und bin auch schon oefters in diese Falle getreten. Da hilft nur eins, Du musst fuer den kleinsten gemeinsamen Nenner scripten und dieser wird sicher von den proprietaeren UN*X Systemen gestezt und nicht von Linux. Ansonsten hilft oft, die GNU Versionen der Tools auch auf den UN*X Systemen zu installieren, sofern dies moeglich ist...
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Aber nicht auf 15 Server mal davon abgesehen das wir das nichtmal dürfen, da die Systemhersteller die auch teilweise die Server stellen eine spezielle Umgebung fordern..QT hat geschrieben:Ansonsten hilft oft, die GNU Versionen der Tools auch auf den UN*X Systemen zu installieren, sofern dies moeglich ist...
ich will meine GNU's (schon mal versuch auf Solaris rekursiv in Dateien zu greppen? Einziger (unschöner) Weg: find mit -print und -exec...
Savar, ja, ich weiss genau, wovon Du sprichst! In den letzten 10 Jahren war ich bei so viel Kunden und jeder nutzt was anderes. Mal HP-UX, mal DEC, mal AIX, mal Solaris etcpp, und ich sag ja, ich bin schon oft selbst in diese Problematik reingelaufen. Auch frage ich bei Kunden nie, ob ich GNU Tools installieren kann. Es geht halt einfach nicht und daher nutze ich idR 'awk' und schreibe die Scripts so, dass sie auf moeglichst vielen Plattformen laufen.
Ja, auch rekursives grep hab ich schon oft vermisst und mit der von Dir genannten Methode nachempfunden. Ich find allein schon die Standardinstallation von einem proprietaeren UN*X nicht ihr Geld wert. Da hast Du ein PS1=$ und das wars. Da wird mir dann auch oft klar, warum viele das als 'nuzterunfreundlich' empfinden. Die Usability der Korn Shell ist auch ne Sache fuer sich
Ja, auch rekursives grep hab ich schon oft vermisst und mit der von Dir genannten Methode nachempfunden. Ich find allein schon die Standardinstallation von einem proprietaeren UN*X nicht ihr Geld wert. Da hast Du ein PS1=$ und das wars. Da wird mir dann auch oft klar, warum viele das als 'nuzterunfreundlich' empfinden. Die Usability der Korn Shell ist auch ne Sache fuer sich