GNU/Linux >> Linux Esercitazione >  >> Linux

Riempire con zero i numeri fino a 2 cifre con sed

Un'altra soluzione: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

Ecco un modo (non sed) di usare bash con espressione regolare estesa ..
Questo metodo consente all'oscilloscopio di eseguire elaborazioni più complesse di singole righe. (vale a dire più che semplici sostituzioni regex)

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

uscita:

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. Utilizzo di più modelli contemporaneamente con il comando Sed

  2. Come ottenere la portabilità con Sed -i (modifica sul posto)?

  3. Aggiunta con 'sed'?

  4. Usare Sed con personaggi speciali?

  5. Estrarre la sottostringa secondo Regexp con Sed o Grep?

Eliminare tutti i commenti C con Sed?

Colorare l'output della coda con Sed?

Utilizzo del comando Linux sed con esempi

sed inserisce una riga con spazi in una riga specifica

Ordinamento di numeri con più decimali in bash

Come sostituire in modo ricorsivo i caratteri con sed?