GNU/Linux >> Linux Esercitazione >  >> Linux

Inserimento di un file in un altro file dopo la prima occorrenza di un pattern?

Voglio inserire il contenuto di file1 in file2 dopo un PATTERN corrispondente. Voglio farlo solo dopo la prima occorrenza del PATTERN.

Vorrei sapere la modifica che devo apportare al seguente comando per le mie esigenze.

sed -i "/PATTERN/r file1" file2

Risposta accettata:

sed '/PATTERN/{
       r file1
       :a
       n
       ba
     }' file2

:a , n , ba è solo un ciclo che stampa l'intero contenuto del file dopo il PATTERN fino alla fine. e nota che quelle 6 righe sono solo un comando, ma newline è necessario per delimitare il prossimo comando sed dopo r , : e b .

informazioni aggiuntive da info sed :

`n'
     If auto-print is not disabled, print the pattern space, then,
     regardless, replace the pattern space with the next line of input.
     If there is no more input then `sed' exits without processing any
     more commands.

`: LABEL'
     [No addresses allowed.]

     Specify the location of LABEL for branch commands.  In all other
     respects, a no-op.

`b LABEL'
     Unconditionally branch to LABEL.  The LABEL may be omitted, in
     which case the next cycle is started.

Linux
  1. Copiare il contenuto di un file negli appunti senza visualizzarne il contenuto?

  2. Come contare il numero di righe in un file dopo una corrispondenza Grep?

  3. Come eseguire il tail -f dell'ultimo file di registro con un dato modello

  4. Come rimuovere le linee che appaiono sul file B da un altro file A?

  5. Come eseguire il grep per i contenuti dopo il modello?

Come memorizzare l'output di SHOW PROCESSLIST in un file in MySQL?

Strumento per ottenere le righe in un file che non sono in un altro?

Come copiare un file da un'altra directory a quella corrente?

mmap:il file mappato verrà caricato immediatamente in memoria?

Inserisci più righe in un file dopo il modello specificato utilizzando lo script della shell

Cosa significa un punto dopo i bit di autorizzazione del file?