Domanda

rpm inserisce automaticamente un nuovo kernel installato come prima opzione.Tuttavia, voglio spostarlo come ultimo, alla fine del file.

Il file di configurazione di Grub è simile al seguente:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.29.6-217.2.7.fc11.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.29.6-217.2.7.fc11.x86_64 ro root=/dev/mapper/main-root rhgb quiet
    initrd /initrd-2.6.29.6-217.2.7.fc11.x86_64.img
title Fedora (2.6.29.6-217.2.3.fc11.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.29.6-217.2.3.fc11.x86_64 ro root=/dev/mapper/main-root rhgb quiet
    initrd /initrd-2.6.29.6-217.2.3.fc11.x86_64.img
title Fedora (2.6.29.6-213.fc11.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.29.6-213.fc11.x86_64 ro root=/dev/mapper/main-root rhgb quiet
    initrd /initrd-2.6.29.6-213.fc11.x86_64.img

Il mio obiettivo è spostare la prima opzione (217.2.3) alla fine.Ora capisco come eliminarlo:

sed -e '/(2.6.29.6-217.2.7.fc11.x86_64)/,+3d' /boot/grub/menu.lst

Il comando p stampa solo la riga corrente (non come in vim, dove significa incolla).

Hai qualche idea su come spostare automaticamente questa parte del file alla fine?

È stato utile?

Soluzione

Devo rispondermi da solo.:-)

sed '/\(2.6.18-157.el5\)/,+4 { H; d; }; $ { p; x; }' /boot/grub/menu.lst

Se non parli fluentemente sed (nemmeno io), esiste una versione più dettagliata

sed '
 /\(2.6.18-157.el5\)/,+3 { #Find line which contains version of our kernel in parentheses and took also 3 following lines
  H # Append this line into buffer
  d # Delete line
 }

 $ { # On the last line
 p # Print current line
 x # Change current line with buffer and vice versa
 # Afterwards sed print current line => in our case deleted line
 }' /boot/grub/menu.lst

Altri suggerimenti

Un compito molto simile è stato trattato ampiamente qui

Sì, c'è qualche soddisfazione in un comando sed ben realizzata, ma penso che mi tendono ad utilizzare un editor, così ho potuto vedere le linee che stavo per muoversi, e non devono preoccuparsi di ottenere i numeri di riga sbagliato in un comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top