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

Null-Füllen Sie Zahlen mit sed auf 2 Ziffern

Eine andere Lösung:awk '{$2 = sprintf("%02d", $2); print}'


$ sed 's/\<[0-9]\>/0&/' ./infile
201103 01 /mnt/hdd/PUB/SOMETHING
201102 07 /mnt/hdd/PUB/SOMETH ING
201103 11 /mnt/hdd/PUB/SO METHING
201104 03 /mnt/hdd/PUB/SOMET HING
201106 01 /mnt/hdd/PUB/SOMETHI NG

Hier ist eine (nicht-sed) Möglichkeit, bash zu verwenden mit erweiterter Regex ..
Diese Methode ermöglicht dem Scope eine komplexere Verarbeitung einzelner Zeilen. (dh mehr als nur Regex-Ersetzungen)

while IFS= read -r line ; do
    if [[ "$line" =~ ^(.+\ )([0-9]\ .+)$ ]]  
    then echo "${BASH_REMATCH[1]}0${BASH_REMATCH[2]}" 
    else echo "$line"
    fi
done <<EOF
201103 1 /mnt/hdd/PUB/SOMETHING
201102 7 /mnt/hdd/PUB/SOMETH ING
201103 11 /mnt/hdd/PUB/SO METHING
201104 3 /mnt/hdd/PUB/SOMET HING
201106 1 /mnt/hdd/PUB/SOMETHI NG
EOF

Ausgabe:

201103 01 /mnt/hdd/PUB/SOMETHING
201102 07 /mnt/hdd/PUB/SOMETH ING
201103 11 /mnt/hdd/PUB/SO METHING
201104 03 /mnt/hdd/PUB/SOMET HING
201106 01 /mnt/hdd/PUB/SOMETHI NG

Linux
  1. Mehrere Muster gleichzeitig mit dem Sed-Befehl verwenden

  2. Alle C-Kommentare mit Sed löschen?

  3. Sed mit Sonderzeichen verwenden?

  4. Schwanzausgabe mit Sed einfärben?

  5. Ersetzen Sie in Bash ein Wort durch ein anderes

Ergänzung mit „sed“?

Substring nach Regexp mit Sed oder Grep extrahieren?

Verwendung des Linux-Befehls sed mit Beispielen

So entfernen Sie \r-Zeichen mit sed

Sortieren von Zahlen mit mehreren Dezimalstellen in Bash

Wie kann man Zeichen rekursiv durch sed ersetzen?