GNU/Linux >> Linux Esercitazione >  >> Linux

lo script bash aggiunge il testo alla prima riga di un file

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 1
  • a :append (questo verrà inserito dopo la riga corrente)
  • Siamo in modalità inserimento e stiamo inserendo l'espansione di $line
  • . :interrompe la modalità di inserimento
  • 1,2j unire le righe 1 e 2
  • w :scrivere
  • q :esci

Linux
  1. Come inserire del testo prima della prima riga di un file?

  2. Script Bash:controlla se un file è un file di testo?

  3. Rimuovere in modo efficiente le prime due righe da un file di testo?

  4. Elimina i primi cinque caratteri su qualsiasi riga di un file di testo in Linux con sed

  5. Come sostituire il testo come sed con python?

Come leggere un file riga per riga in Bash

Bash:aggiungi al file

Sostituzione di String in Bash

35 Esempi di script Bash

Script di Bash per centrare Fortune/testo da Stdin/pipe?

Come si aggiunge del testo a un file?