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.