GNU/Linux >> Linux Esercitazione >  >> Linux

Inserisci più righe di dati in un file dopo le corrispondenze dei modelli utilizzando lo script della shell di Linux

Hai un pezzo di codice che deve essere inserito in più file? Allora, sei proprio come me che sta passando un momento difficile! Stavo lavorando su un sito web ospitato in cpanel che aveva numerosi file HTML in ognuno dei quali doveva essere inserito un codice popup. Il numero di file HTML era 425. È stato un incubo farlo in Windows. Ma ehi, non te l'avevo detto che ho trovato un modo più intelligente per farlo. Acquista qui sotto!

Fase 1:copia i file da CPANEL

Copia tutti i file da cpanel al tuo sistema Windows locale utilizzando WinSCP.

Fase 2:copia i file da Windows a Linux

Quindi copia i file HTML su un server Linux. Se non disponi di un tuo server, puoi eseguire un sistema Linux virtualmente sul desktop utilizzando virtualbox. Scopri come installare virtualbox qui.

Fase 3:usa il comando 'sed' per inserire il codice

Usa il comando sed seguente per inserire il tuo codice da un altro file. Ad esempio:Dati da inserire dal file “add.txt” in “input.txt”. Ora il comando sarebbe :

Input.txt

abcd
efgh
ijkl
mnop
qrst

aggiungi.txt

uvwx
yzab
cdef
ghij
klmn
$sed '/ijkl/r add.txt' input.txt

Il comando aggiungerebbe il contenuto da add.txt a input.txt dopo che il modello "ijkl" corrisponde. Quindi l'output sarebbe:

abcd
efgh
ijkl
uvwx
yzab
cdef
ghij
klmn
mnop
qrst

Il comando precedente genererebbe il contenuto sul terminale. Per aggiornare il file con il contenuto, usa il comando "-i" con sed come mostrato di seguito:

$sed -i '/ijkl/r add.txt' input.txt

Se devi inserire contenuto inserendo direttamente e non dal file, puoi utilizzare il comando seguente:

$sed -i 's/.*ijkl.*/uvwx\n&/' input.txt
abcd
efgh
ijkl
uvwx
mnop
qrst

Fase 4:esegui il comando precedente in un ciclo con il numero di file

Vai alla directory in cui è necessario modificare i file. Usa "for loop" inserisci i dati con il comando seguente:

for i in *;
do
    $sed '/ijkl/r add.txt' $i
done

Nel codice sopra * rappresenta i file. Per ogni file, come $i, aggiungi il contenuto del file add.txt dopo che il modello "ijkl" è stato abbinato.

Fase 5:copia di nuovo i file da Linux a Windows su Cpanel

Il passaggio finale consiste nel copiare nuovamente i file modificati dal server Linux al sistema Windows locale. E poi usa scp o ftp per copiare i file dal sistema Windows locale a cpanel.


Linux
  1. Script Shell per spostare i file più vecchi?

  2. Come aggiungere i dati al buffer nello script della shell?

  3. Come aggiungere più righe a un file?

  4. Come rinominare più file insieme in Linux usando 3 metodi

  5. Come creare file sparsi in Linux usando il comando 'dd'

Come dividere un file di archivio di grandi dimensioni in più file di piccole dimensioni utilizzando il comando Dividi in Linux

Come dividere un file di archivio di grandi dimensioni in più file di piccole dimensioni utilizzando il comando Dividi in Linux

Come condividere file localmente su Linux utilizzando NitroShare

8 metodi per rinominare più file contemporaneamente in Linux

Come sincronizzare i file in due modi utilizzando Osync Script in Linux

Creazione di modelli con Linux in uno script Shell?