Cum pot adăuga ieșire de comandă la sfârșitul unui fișier text?
Utilizarea `>> "în loc de" > când conducerea de ieșire într-un fișier:
your_command >> file_to_append_to
Dacă file_to_append_to` nu exista, acesta va fi creat.
Exemplu:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
Să adăugați un fișier folosi >>
echo "hello world" >> read.txt cat read.txt echo "buna ziua siva" >> read.txt cat read.txt
apoi de ieșire ar trebui să fie
salut lume # de la 1 echo comanda salut lume # de la a 2-a comanda echo salut siva
Să `suprascrie un fișier folosi " >"
echo "salut tom" > read.txt cat read.txt apoi pune este
alo tom`
Puteți să utilizați >> operator. Acest lucru va adăuga date de la o comandă la sfârșitul unui fișier text.
Pentru a testa acest lucru încercați să rulați:
echo "Hi this is a test" >> textfile.txt
Face acest lucru de câteva ori și apoi executați:
cat textfile.txt
Te'll a se vedea textul a fost anexată de mai multe ori la textfile.txt fișierul.
Folosesc command >> file_to_append_to` pentru a adăuga la un fișier.
De exemplu echo "Buna ziua" >> testFile.txt
ATENȚIE: dacă utilizați doar un singur "> " va complet suprascrie conținutul fișierului. Pentru a se asigura că nu't se întâmple vreodată, puteți adăuga set-o noclobbera ta
.bashrc`.
Acest lucru asigură că, dacă accidental de tip command > file_to_append_tola un fișier existent, acesta va alerta că fișierul există deja. Proba mesaj de eroare: fișierul există: testFile.txt
Astfel, atunci când utilizați "> " se va permite doar vă pentru a crea un nou dosar, pentru a nu suprascrie un fișier existent.
pentru întreaga întrebare:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
aceasta va adăuga 720 de linii (30*24) în o.txt și după ce se va redenumi fișierul bazează pe data curentă.
Rula mai sus cu cron fiecare oră, sau
while :
do
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
sleep 3600
done
Folosind tee cu opțiunea -o (--append) vă permite să adăugați mai multe fișiere la o dată și, de asemenea, să utilizați sudo (foarte util atunci când adăugarea de fișiere protejate). În afară de asta, este interesant, dacă aveți nevoie să utilizați alte scoici în afară de bash, ca nu toate cojile sprijini > și >> operatorii
echo "hello world" | sudo tee -a output.txt
Acest fir are răspunsuri bune despre tee
Mi-ar folosi printf în loc de echo, deoarece's mai fiabile și a proceselor de formatare, cum ar fi noua linie \n
în mod corespunzător.
Acest exemplu produce un rezultat similar cu ecou în exemplele anterioare:
printf "hello world" >> read.txt
cat read.txt
hello world
Cu toate acestea, dacă ați fost de a înlocui printf cu ecou în acest exemplu, echo-ar trata \n ca un șir de caractere, ignorând astfel intenția de
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
De exemplu, fișierul conține :
1. mangesh@001:~$ cat output.txt
1
2
EOF
dacă u nevoie pentru a adăuga la sfârșitul fișierului, apoi ---->amintiți-vă spații între 'text' >> 'nume'
2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
Și pentru a suprascrie conținutul de fișier :
3. mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write