Questo sed
comando aggiungerà q
alla fine della prima riga del file.
sed ' 1 s/.*/&123/' yourfile.txt
anche
sed '1 s/$/ 123/' yourfile.txt
Per aggiungere il risultato allo stesso file devi usare -i
cambia :
sed -i ' 1 s/.*/&123/' yourfile.txt
Questa è una soluzione per aggiungere "ok" alla prima riga su /etc/passwd
, penso che tu possa usarlo nel tuo script con un po' di 'messa a punto' :
$ awk 'NR==1{printf "%s %s\n", $0, "ok"}' /etc/passwd
root:x:0:0:root:/root:/bin/bash ok
Per modificare un file, puoi usare ed
, l'editor standard:
line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
ed -s "$file" < <(printf '%s\n' 1 a "$line" . 1,2j w q)
fi
ed
comandi di:
1
:vai alla riga 1a
:append (questo verrà inserito dopo la riga corrente)- Siamo in modalità inserimento e stiamo inserendo l'espansione di
$line
.
:interrompe la modalità di inserimento1,2j
unire le righe 1 e 2w
:scrivereq
:esci