GNU/Linux >> Znalost Linux >  >> Ubuntu

Používání sed k aktualizaci souboru Grub?

Jsem nový v používání sed, ale rychle se učím ho milovat pro jeho obecnou flexibilitu v automatizaci. Chci spustit skript s různými bezpečnostními kontrolami pokaždé, když nasadím nový systém, a částečně to vyžaduje, abych uzamkl GRUB. Chci odemknout obecnou možnost Ubuntu z nabídky GRUB, aby ji poté mohl kdokoli používat bez hesla a zároveň zachovat vše ostatní chráněné heslem.

jak bylo řečeno, hledám v souboru /boot/grub/grub.cfg konkrétní řádek a do této možnosti přidám –unrestricted. (Používáme pouze 16.04.03, takže všechny systémy by teoreticky měly po instalaci stejný soubor)

Řádek v souboru je:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

A chci, aby to vypadalo takto:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

Vím, že sed -i je pro úpravy na místě a s/ by měl hledat. Ale kromě toho jsem ztracen v syntaxi, aby to skutečně dělalo to, co potřebujeme. Pokud mohu říci, že umístění –unrestricted je potřeba, protože věřím, že by bylo jednodušší, kdybychom nemuseli mít tak dlouhé hledání, ale opět jsem v sed a nejsem si jistý. Mohl by mi někdo pomoci s tímto vložením sed? Nejlépe mi také vysvětlete, proč je jiná syntaxe tam, kde je, abych to věděl do budoucna.

Přijatá odpověď:

Zde je příkaz.

sed -i "s/--class os/--class os --unrestricted/" filename

Toto nahradí řádek v souboru bez nutnosti dočasného souboru, kvůli volbě -i.

Pokud nezáleží na tom, kam v řádku jde „–neomezené“, může to být jednodušší.

sed -i "s/'Ubuntu'/'Ubuntu' --unrestricted/" filename

Ubuntu
  1. Uložit soubor po použití příkazu Sed?

  2. Nahradit text více souborů textem Sed?

  3. Jak aktualizovat/přidat soubor v Docker Image

  1. Příkaz Linux Sed:Použití a příklady

  2. Jak nahradit řetězec v souboru (souborech)?

  3. Nastavte výchozí jádro v GRUB

  1. Linux – nastavit výchozí jádro v Grub?

  2. Aktualizovat Destroyed Grub?

  3. Rozdělit soubor na základě předem definované sady řádků?