GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Löschen Sie Leerzeichen in jedem Zeilenanfang der Datei mit bash

use kann perl -i für den direkten Ersatz verwenden.

perl -p -e 's/^ *//' file 

Zum Löschen der Leerzeichen vor dem Beginn der Zeile, wenn das Muster übereinstimmt. Verwenden Sie den folgenden Befehl. Zum Beispiel hat Ihre foo.in ein Muster wie dieses

      This is a test                                
                    Lolll
                       blaahhh
      This is a testtt

Nach der Ausgabe des folgenden Befehls

sed -e '/This/s/ *//' < foo.in > foo.out

Der foo.out wird sein

This is a test
             Lolll
                blaahhh
This is a testtt

sed -i 's/ //g' your_file wird es tun, indem Sie die Datei an Ort und Stelle ändern.

Um nur die Leerzeichen am Anfang einer einzelnen Zeile zu löschen, verwenden Sie sed -i 's/^ *//' your_file

Im ersten Ausdruck ersetzen wir alle Leerzeichen durch nichts. Im zweiten ersetzen wir am Anfang mit dem ^ Schlüsselwort


tr (alle Leerzeichen löschen):

$ tr -d ' ' <input.txt >output.txt
$ mv output.txt input.txt

sed (Löschen Sie führende Leerzeichen)

$ sed -i 's/^ *//' input.txt

Linux
  1. Wie füge ich in Bash nach jeder Zeile in einer Datei eine Zeichenfolge hinzu?

  2. Bash:Zeichenfolge ohne Zeilenumbruch am Ende der Datei hinzufügen

  3. Wie zähle ich die Anzahl der Tabulatoren in jeder Zeile mit Shell-Skript?

  4. Alle Ausgaben mit Bash unter Linux in eine Datei umleiten?

  5. ersetzt das n-te Vorkommen von String in jeder Zeile einer Textdatei

So lesen Sie eine Datei Zeile für Zeile in Bash

Ersetzen von Zeichenfolgen in Bash

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk

Unix Sed Tutorial:Drucken von Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:Löschen Sie Dateizeilen mit Adresse und Mustern