Istnieje wiele sposobów odczytu i zapisu pliku w bash. Najprostszym sposobem jest użycie operatorów > i >>.
- > operator nadpisze istniejące dane
- >> operator doda dane
Ogólny format używania operatorów przekierowania to:
Dane > Nazwa pliku
Dane >> Nazwa pliku
Rozumiemy procedurę zapisu do pliku na przykładzie:
Jak napisać plik za pomocą operatorów przekierowania
Jak omówiono powyżej, prostym i bezpośrednim podejściem do zapisu do pliku jest użycie operatorów przekierowania. Na przykład, jeśli chcesz zmienić tekst już istniejącego pliku, najpierw utwórz plik tekstowy o nazwie plik testowy.txt i napisz w nim cokolwiek:
Zapisz plik tekstowy.
Wpisz w terminalu poniższe polecenie:
$ echo Nadpisywanie istniejącego tekstu w pliku > testfile.txt
Nadmierne wykręcanie może być ryzykowne; dlatego dobrą praktyką jest włączenie noclobber. Ustawienie noclobber zablokowałoby wszelkie nadpisywanie do dowolnego wychodzącego pliku.
$ set –o noclobber$ echo Nadpisywanie istniejącego tekstu w pliku > testfile.txt
Ale jeśli chcesz ominąć noclobber, użyj > | operator zamiast > :
$ echo Nadpisywanie istniejącego tekstu w pliku >| plik testowy.txtMożesz też po prostu wyłączyć noclobber:
$ set + lub noclobber
Ale to polecenie usunie ochronę wszystkich plików.
Powyższe wyjście wskazuje, że istniejący tekst został nadpisany. Teraz użyjmy >> operator:
$ echo Dołączanie tekstu do istniejącego pliku tekstowego >> testfile.txt
wyrzucił nie zawsze jest idealny do użycia, ponieważ nie można go sformatować, dlatego użyj printf zamiast echa, aby sformatować tekst, jak pokazano w następującym poleceniu:
$ printf Witaj To jest nowy plik tekstowy. > newtestfile.txt
Zrozummy tę koncepcję na przykładzie skryptu bash. Otwórz Vima wpisując vim w terminalu. Jeśli nie masz edytora Vima na swoim urządzeniu, zainstaluj go za pomocą:
$ sudo apt zainstaluj vimWpisz skrypt:
#! /bin/bashecho Wpisz swoje imię
przeczytaj imię
echo $nazwa > katalog_danych.txt
echo Podaj swój wiek
przeczytaj wiek
echo $wiek >> katalog_danych.txt
cat data_dir.txt
ten Kot Polecenie służy do tworzenia i edycji plików. Zapisz powyższy skrypt w Vimie, przełączając tryb po naciśnięciu wyjście klucz, a następnie wpisz :w myscript.sh . Otwórz terminal i uruchom kod:
Jak napisać plik za pomocą Heredoc
Jeśli chcesz napisać wiele wierszy, najłatwiejszą metodą jest użycie Heredoc. Tutaj dokument, znany również jako Heredoc, jest wielozadaniowym blokiem kodu. Składnia Heredoc to:
Komenda<<[-] Delimiter.
tekst/polecenia
.
Ogranicznik
Zamiast separatora można użyć dowolnego ciągu, a - można również użyć do usunięcia wszelkich spacji tabulacji w pliku. Zrozummy to na prostym przykładzie:
#! /bin/bashKot<< TEXTFILE
To jest plik tekstowy.
Ten plik jest tworzony przy użyciu heredoc.
PLIK TEKSTOWY
Powyższe polecenie skryptu cat tworzy plik tekstowy o nazwie TEXTFILE i zapisuje tekst do właśnie utworzonego pliku. Teraz zapisz plik pod nazwą myscript.sh . Uruchom terminal i uruchom skrypt.
Jak napisać plik za pomocą polecenia Tee
Inną metodą zapisania pliku jest użycie polecenia Tee. Jako nazwa wskazująca to polecenie pobiera dane wejściowe i zapisuje do pliku oraz jednocześnie wyświetla dane wyjściowe. Domyślnie polecenie Tee nadpisze istniejące dane.
$ echo To jest jakiś tekst | trójnik plik tekstowy.txt
Aby dołączyć użycie –a:
$ echo To kolejny tekst | trójnik –plik tekstowy.txt
Aby napisać wiele wierszy, użyj:
$ echo Dodawanie tekstu do wielu plików | trójnik textfile1.txt textfile2.txt textfile3.txt
Powyższe polecenie utworzy trzy pliki, jeśli nie istnieją, i zapisze tekst do każdego z nich.
Wniosek
Ten przewodnik skupia się na wielu podejściach do zapisu do pliku w bash z przykładami. W skryptach bash istnieje wiele sposobów na zapisanie pliku, ale najprostszym z nich jest użycie operatorów przekierowania >, >>. Aby napisać wiele wierszy, można użyć heredoc, a jeśli chcesz zapisać te same dane w wielu wierszach, bardzo przydatne jest polecenie tee.