Ich habe das folgende Skript:Bash-Skript: Ersetzen Sie eine Zeile in einer Datei
#!/bin/bash
LINE="linux /disk0/vmlinuz rw root=/dev/mapper/VolGroup1-disk0_root console=tty0 clock=pit aacraid.msi=1"
NEW_LINE="linux /disk0/vmlinuz rw root=/dev/mapper/VolGroup1-disk0_root console=tty0 clock=pit aacraid.msi=1 elevator=deadline"
#sed -i "/${LINE}/c ${NEW_LINE}" grub.cfg
LINE1="insmod lvm"
NEW_LINE1="insmod lvm x"
sed -i "/${LINE1}/c ${NEW_LINE1}" grub.cfg
Kann mir jemand sagen, warum die kommentierte sed funktioniert nicht (Fehler: sed: -e expression #1, char 10: extra characters after command
), aber die uncommented man tut, wenn nur die Saiten sind anders?
Beachten Sie auch, dass der 'c' Befehl mit den Daten in derselben Zeile eine GNU' sed' Erweiterung ist und die '-i' Option ohne Suffix ebenfalls eine GNU' sed' Erweiterung. BSD 'sed' (zB auf macOS) unterstützt' -i', benötigt aber eine Erweiterung; Um eine Null-Erweiterung für das Backup anzugeben, verwenden Sie '-i ''' (beachten Sie, dass das leere Argument separat sein muss). Die tragbare Backup-Notation ist "-i.bak" ohne Leerzeichen zwischen dem "-i" und dem Suffix; das funktioniert mit GNU- und BSD-Varianten. –
Hallo Jonathan, danke für deine Hilfe. Für mich geht das. – maimun4itu