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

2 Befehle kombinieren?

Ich muss ein Shell-Skript schreiben, um Zeichen in einer Datei in Kleinbuchstaben umzuwandeln und Nicht-Alpha-Zeichen durch _ zu ersetzen .

Ich habe einen separaten Befehl für die beiden oben genannten. Wie man eine Datei als Argument angibt und die oben genannten Dinge erledigt, d.h. die Ausgabe enthält nur Kleinbuchstaben und Nicht-Alpha wird durch _ ersetzt (Unterstrich)?

Akzeptierte Antwort:

Mit sed :

sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt

Das sind eigentlich zwei sed Befehle getrennt durch ; :

  • s/[^[:alpha:]]/_/g wandelt jedes nicht-alphabetische Zeichen in einen _ um

  • s/[[:upper:]]/\L&/g wandelt alle Großbuchstaben in Kleinbuchstaben um

Beispiel:

$ cat file.txt 
fooBAr132323
SpamEgg

$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg

Ubuntu
  1. Grundlegende vi-Befehle (Spickzettel)

  2. Alle Linux-Befehle zum Komprimieren/Dekomprimieren

  3. Textdatei als Befehle in Bash ausführen

  4. cp-L vs. cp-H

  5. Wie leite ich Befehle in einer Debian-Preseed-Datei zusammen?

Erste Schritte mit Ansible Ad-hoc-Befehlen

Einige zufällige Einzeiler-Linux-Befehle [Teil 3]

So führen Sie .sh-Dateibefehle auf einmal in Linux aus

Grundlegende Linux-Befehle für Anfänger

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile

Von Linux-Systemadministratoren häufig verwendete Linux-Befehle – Teil 5