Solusi lain: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
Ini adalah cara (non-sed) untuk menggunakan bash dengan ekstensi regex ..
Metode ini, memungkinkan ruang lingkup untuk melakukan pemrosesan baris individu yang lebih kompleks. (mis. lebih dari sekadar penggantian 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
keluaran:
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
Apakah SELinux memberikan keamanan ekstra yang cukup sehingga layak untuk dipelajari/diatur?
Mengembalikan file