Risposte:
sed -e "\$aTEXTTOEND"
è il modo più semplice.
$
corrisponde all'ultima riga (è un sed
indirizzo normale ; 4aTEXTTOEND
inserirà dopo la quarta riga), a
è il comando append ed TEXTTOEND
è cosa aggiungere.
sed -e '$a\NEWLINE\\'
. Sostituisci NEWLINE con una nuova linea reale.
Non c'è bisogno di usare sed
in quel caso. Che ne dite di
echo "<?php" >> file
<php
" e " >
" e citando i contenuti selezionati tutto in una volta, quindi probabilmente vuole davvero un sed
frammento.
sudo
, il che fa fallire questa variazione poiché echo
è un comando di shell incorporato piuttosto che un file eseguibile trovato in$PATH
echo
è un built-in ma è anche un file eseguibile trovato in$PATH
Supponendo di voler inserire il tag php finale nei file, quindi
sed -i '$s/$/\n?>/' file
dovrebbe fare il trucco
Vedi il tuo post originale per il comando sed in all in one.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Usa il comando sed 'append (a)'. Ad esempio, per aggiungere due righe alla fine del file:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
In un modo semplice per scrivere e apportare le modifiche al contenuto in una riga specifica in un file. Se si desidera inserire qualcosa in un numero di riga specifico, è possibile utilizzare il comando seguente:
sed -i '2i i have started' sheikh.log
dove 2i
- la riga numero 2 e i indica l'inserimento. Se è necessario inserire l'ultima riga, utilizzare $
al posto di 2. ho iniziato - il testo da inserire ed sheikh.log
è il nome file.
Possiamo anche apportare le modifiche alla riga usando il comando seguente
sed -i '2c we have started' sheikh.log
i
è cambiato in we
.
Suppongo che chiunque abbia cercato come inserire / aggiungere testo all'inizio / alla fine di un file probabilmente deve anche sapere come fare anche l'altro.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Questo viene cal
inviato a gnu- sed
(chiamato gsed
su macOS installato tramite brew.sh ) con RegEx esteso ( -E
) e 6 "script" applicati ( -e
) e interruzioni di riga con escape \
per leggibilità. Gli script 1 e 2 usano 1i\
per "alla riga 1, inserire". Gli script 5 e 6 usano $a\
"alla riga <lasto>, aggiungi". Ho allineato verticalmente gli output del testo per fare in modo che il codice rappresentasse ciò che è previsto nel risultato. Gli script 3 e 4 sostituiscono (quest'ultimo si applica solo a "line <last>"). Il risultato sta convertendo l'output del comando in JSON valido.
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, questo funziona anche grazie a sh. *. (non sed ma funziona e semplice)