15. december

sed

Dagens kommando burde have været sed... Desværre er vi nogle der har glemt at skrive noget...

'sed' er et lille program der kan bruges til at lave endog særdeles vidtgående ændringer i en fil.

En simpel anvendelse af 'sed' er

	sed -e '5 s/windows/linux/' < indfil > udfil
	
der vil læse 'indfil', erstatte "windows" med "linux" i linie 5, og skrive resultatet i udfil.

Oftere anvender man dog 'sed' på en datakanal, for at få ændret i den tekst et program spytter ud, inden den skal behandles af et andet program.

Et lille praktisk eksempel: Efter endt Linux installation vil vi gerne ændre i lilo.conf. Dette vil vi gerne gøre på en række maskiner der er ens, så det er praktisk at kunne automatisere det med et script.

#Sæt password på single user mode
cat /etc/lilo.conf | sed 's/prompt/prompt\
password=mithemmelige\
restricted/' > /tmp/lilo.conf
mv -f /tmp/lilo.conf /etc/lilo.conf

#Lav længere timeout
sed 's/timeout=50/timeout=100/' /etc/lilo.conf > /tmp/lilo.conf
mv -f /tmp/lilo.conf /etc/lilo.conf

#Lav linear om til lba32
sed 's/linear/lba32/' /etc/lilo.conf > /tmp/lilo.conf
mv -f /tmp/lilo.conf /etc/lilo.conf

#Brug nyere Linux-kerne
sed 's/vmlinuz-2.4.3-12/bzImage/' /etc/lilo.conf > /tmp/lilo.conf
mv -f /tmp/lilo.conf /etc/lilo.conf

#Ingen må kigge
chmod 600 /etc/lilo.conf

#Kør lilo
/sbin/lilo

Det var ikke meget, men som sagt er vi nogle der har kludret i det.