Ja, det er muligt at erstatte en værdi for en enkelt variabel i en inputfil og tilføje parret til slutningen af filen, hvis det ikke findes, ved hjælp af awk
. Her er en løsning, der bruger awk
:
awk -v var="VARIABLE" -v val="new_value" '
BEGIN { found=0 }
{
if ($0 ~ "^" var "=") {
$0 = var "=" val
found=1
}
print
}
END {
if (found == 0) {
print var "=" val
}
}' inputfile > outputfile
Forklaring:
-v var="VARIABLE"
: Angiver variabelnavnet, der skal erstattes eller tilføjes.-v val="new_value"
: Angiver den nye værdi for variablen.BEGIN { found=0 }
: Initialiserer en flag-variabel found
til 0 i begyndelsen.if ($0 ~ "^" var "=")
: Tjekker om linjen indeholder variablen i starten.$0 = var "=" val
: Erstatter linjen med den nye værdi, hvis variablen findes.found=1
: Sætter flaget found
til 1, hvis variablen findes og erstattes.print
: Udskriver linjen.END { if (found == 0) { print var "=" val } }
: Tilføjer variablen og dens værdi til slutningen af filen, hvis den ikke blev fundet.Dette script bevarer linjeordenen og sikrer, at variablen enten erstattes eller tilføjes til slutningen af filen, hvis den ikke findes.
Har du brug for hjælp til inputfilhåndtering? Med Handyhand kan du nemt oprette din opgave helt gratis. Inden for få minutter vil du modtage bud fra dygtige hjælpere, der står klar til at assistere dig med dine behov. Få den hjælp, du har brug for, og kom hurtigt videre med dit projekt!