Ich habe eine einzige Textdatei. Diese Datei hat 5 Zeilen und 5 Spalten. Alle Spalten sind durch "|" (Symbol). In dieser zweiten Spalte (Inhalt) sollte die Länge 7 Zeichen betragen.Unix Shell Scripting - Wie kann ich bestimmte Zeichen in einer Textdatei entfernen?
Wenn die zweite Spaltenlänge mehr als 7 Zeichen beträgt. Dann möchte ich diese zusätzlichen Zeichen entfernen, ohne diese Datei zu öffnen.
Zum Beispiel:
cat file1
ff | hahaha1 | kjbsb | 122344 | jbjbnjuinnv |
df | hadb123_udcvb | sbfuisdbvdkh | 122344 | jbjbnjuinnv |
gf | harayhe_jnbsnjv | sdbvdkh | 12234 | jbjbnj |
qq | kkkks2 | datetag | 7777 | jbjbnj |
jj | harisha | hagte | 090900 | hags |
Für den obigen Fall sind die zweite und dritte Zeile mit der zweiten Spaltenlänge mehr als 7 Zeichen. Jetzt möchte ich diese zusätzlichen Zeichen entfernen, ohne die Eingabedatei mit dem Befehl awk oder sed zu öffnen
Ich warte auf Ihre Antworten Jungs.
Vielen Dank im Voraus!
siehe https://stackoverflow.com/editing-help, besser die erwartete Ausgabe zur besseren Übersicht hinzufügen und https://stackoverflow.com/help – Sundeep
Sie können eine Datei nicht bearbeiten, ohne sie zu öffnen. –
Es ist nicht klar, was genau Ihre "ohne die Datei öffnen" -Anforderung bedeutet. Um die Eingabedatei zu lesen, muss die Datei _must_ geöffnet sein.Wenn Sie die Eingabedatei einfach nicht überschreiben möchten, können Sie stattdessen in eine temporäre Datei schreiben (wie in @ TomFenechs Antwort unten). – e0k