Jak dołączyć wynik polecenia na końcu pliku tekstowego?
478
Użyj >>
zamiast >
kierować wyjście do pliku:
your_command >> file_to_append_to
Jeśli file_to_append_to
nie istnieje, zostanie utworzony.
Przykład:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
usuwa znaki nowego wiersza z ciągu. Jak dołączyć do pliku ciąg zawierający znaki nowej linii?Do
append
pliku użyj>>
wtedy wyjście powinno być
Do
overwrite
pliku użyj>
wtedy wyjście jest
hello tom
źródło
Możesz użyć operatora >>. Spowoduje to dołączenie danych z polecenia na końcu pliku tekstowego.
Aby przetestować tę próbę, uruchom:
Zrób to kilka razy, a następnie uruchom:
Zobaczysz, że twój tekst został kilkakrotnie dołączony do pliku textfile.txt.
źródło
Służy
command >> file_to_append_to
do dołączania do pliku.Na przykład
echo "Hello" >> testFile.txt
UWAGA: jeśli używasz tylko jednego
>
, nadpiszesz zawartość pliku. Aby mieć pewność, że tak się nigdy nie stanie, możesz dodaćset -o noclobber
do swojego.bashrc
.Zapewnia to, że jeśli przypadkowo wpiszesz
command > file_to_append_to
istniejący plik, ostrzeże Cię, że plik już istnieje. Przykładowy komunikat o błędzie:file exists: testFile.txt
Tak więc, gdy
>
go użyjesz , będziesz mógł jedynie utworzyć nowy plik, a nie zastąpić istniejący plik.źródło
Użyj
>>
operatora, aby dodać tekst do pliku.źródło
Użycie tee z opcją -a (--append) umożliwia dołączenie do wielu plików jednocześnie, a także użycie sudo (bardzo przydatne podczas dołączania do chronionych plików). Poza tym jest interesujące, jeśli chcesz używać innych powłok oprócz bash, ponieważ nie wszystkie powłoki obsługują operatorów> i >>
Ten wątek ma dobrych odpowiedzi dotyczące tee
źródło
na całe pytanie:
to doda 720 linii (30 * 24) do o.txt, a następnie zmieni nazwę pliku na podstawie bieżącej daty.
Uruchom powyższe z cronem co godzinę lub
źródło
Używałbym printf zamiast echa, ponieważ jest bardziej niezawodny i
\n
poprawnie przetwarza formatowanie, takie jak nowa linia .Ten przykład generuje dane wyjściowe podobne do echa w poprzednich przykładach:
Jeśli jednak w tym przykładzie zastąpiłbyś printf przez echo, echo traktowałoby \ n jako ciąg znaków, ignorując w ten sposób zamiar
źródło
Sugeruję zrobienie dwóch rzeczy:
>>
w skrypcie powłoki, aby dołączyć zawartość do określonego pliku. Nazwę pliku można naprawić lub użyć jakiegoś wzorca.źródło
Na przykład twój plik zawiera:
jeśli chcesz dołączyć na końcu pliku, wówczas ----> pamiętaj spacje między „tekstem” >> „nazwą pliku”
Aby zastąpić zawartość pliku:
źródło
cat
jest ... po prostu całkowicie zwariowane. (Jest pusty, ponieważ właśnie przekierowałeś standardowe wyjście do pliku.)