Risposte:
È possibile aggiungere una riga di testo a un file utilizzando l' >>
operatore:
echo "hello world" >> my_file.txt
o nel tuo caso
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Si prega di prendere nota dei diversi tipi di virgolette .
-i
aggiornerà il file (altrimenti stamperà semplicemente il risultato su stdout), $
è regex che corrisponderà alla fine del file e a
aggiunge il seguente testo al nome del file.
echo "hello world" >> my_file.txt
non crea una nuova ultima riga con HW
, ma la aggiunge alla stringa dell'ultima riga.
HW
@timo?
echo
ciò che aggiunge l'interruzione di riga (rendendola una linea anziché solo un mucchio di personaggi). È possibile disattivare l'interruzione di linea alla fine con -n
.
Esistono molti metodi per aggiungere file senza aprire editor di testo, in particolare tramite più utility di elaborazione testi disponibili in Ubuntu.
tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
Aggiungendo alla risposta di Stefano , puoi anche usare cat
:
Usando un heredoc:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
significa "prendi quanto segue come input, fino a raggiungere una linea che è giusta EOF
". Le virgolette significano prendere l'input letteralmente.
O inserendo la linea su stdin:
$ cat >> config.fish
Quindi incolla o digita la riga, premi Enterper passare a una nuova riga, quindi premi Ctrl + D per segnare la fine.
>
il file verrà troncato, non aggiunto. per un comando più sicuro puoi usare sed:sed -i '$a hello world' filename