'Tab' jest używany jako separator w pliku rozdzielanym tabulatorami. Ten typ pliku tekstowego jest tworzony do przechowywania różnych typów danych tekstowych w ustrukturyzowanym formacie. W systemie Linux istnieją różne typy poleceń do analizowania tego typu pliku. Polecenie „awk” jest jednym ze sposobów parsowania pliku rozdzielanego tabulatorami na różne sposoby. W tym samouczku pokazano zastosowania polecenia 'awk' do odczytu pliku rozdzielanego tabulatorami.
Utwórz plik rozdzielany tabulatorami:
Utwórz plik tekstowy o nazwie użytkownicy.tekst z następującą zawartością, aby przetestować polecenia tego samouczka. Ten plik zawiera nazwę użytkownika, adres e-mail, nazwę użytkownika i hasło.
użytkownicy.tekst
Imię i nazwisko E-mail Nazwa użytkownika HasłoMd. Robin [adres e-mail chroniony] robin89 563425
Nila Hasan [adres e-mail chroniony] nila78 245667
Mirza Abbas [e-maile chronione] mirza23 534788
Aornob Hasan [ochrona poczty e-mail] arnob45 778473
Nuhas Ahsan [adres e-mail chroniony] nuhas34 563452
Przykład-1: Wydrukuj drugą kolumnę pliku rozdzielanego tabulatorami za pomocą opcji -F
Następujące polecenie 'sed' wyświetli drugą kolumnę pliku tekstowego rozdzielanego tabulatorami. Tutaj '-FA' opcja służy do określenia separatora pól pliku of.
$ użytkowników kotów.tekst$ awk -F '\t' 'print $2' użytkowników.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Druga kolumna pliku zawiera adresy e-mail użytkownika, które są wyświetlane jako dane wyjściowe.
Przykład-2: Wydrukuj pierwszą kolumnę pliku rozdzielanego tabulatorami za pomocą zmiennej FS
Następujące polecenie 'sed' wyświetli pierwszą kolumnę pliku tekstowego rozdzielanego tabulatorami. Tutaj, FS Zmienna (Separator pól) służy do określenia separatora pól w pliku.
$ użytkowników kotów.tekst$ awk ' print $1 ' FS='\t' users.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Pierwsza kolumna pliku zawiera nazwy użytkowników, które są wyświetlane jako dane wyjściowe.
Przykład-3: Wydrukuj trzecią kolumnę pliku rozdzielanego tabulatorami z formatowaniem
Następujące polecenie „sed” spowoduje wydrukowanie trzeciej kolumny pliku tekstowego rozdzielanego znakami tabulacji z formatowaniem przy użyciu FS zmienna i printf. Tutaj FS zmienna służy do określenia separatora pól pliku of.
$ użytkowników kotów.tekst$ awk 'BEGINFS="\t" printf "%10s\n", $3' użytkowników.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Trzecia kolumna pliku zawiera nazwę użytkownika, która została tutaj wydrukowana.
Przykład 4: Wydrukuj trzecią i czwartą kolumnę pliku rozdzielanego tabulatorami za pomocą OFS
OFS (Output Field Separator) służy do dodawania separatora pól na wyjściu. Następujące polecenie „awk” podzieli zawartość pliku na podstawie separatora tab(\t) i wyświetli trzecią i czwartą kolumnę, używając tabulacji(\t) jako separatora.
$ użytkowników kotów.tekst$ awk -F "\t" 'OFS="\t" print $3, $4 > ("wyjście.txt")' użytkowników.tekst
$ wyjście kota.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń. Kolumny 3 i 4 zawierają nazwę użytkownika i hasło, które zostały wydrukowane tutaj.
Przykład-5: Zastąp konkretną zawartość pliku rozdzielanego tabulatorami
Funkcja sub() jest używana w 'awk do polecenia do podstawienia'. Następujące polecenie „awk” przeszuka liczbę 45 i zastąpi ją liczbą 90, jeśli szukany numer istnieje w pliku. Po podstawieniu zawartość pliku zostanie zapisana na wyjściu.plik txt.
$ użytkowników kotów.tekst$ awk -F "\t"'sub(/45/,90);print' users.txt > wyjście.tekst
$ wyjście kota.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń. Wyjście.plik txt pokazuje zmodyfikowaną zawartość po zastosowaniu podstawienia. Tutaj treść piątego wiersza uległa zmianie, a „arnob45” zmieniono na „arnob90”.
Przykład-6: Dodaj ciąg na początku każdego wiersza pliku rozdzielanego tabulatorami
W poniższym poleceniu 'awk' opcja '-F' jest używana do dzielenia zawartości pliku na podstawie tab(\t). OFS użył do dodania przecinka (,) jako separatora pól na wyjściu. Funkcja sub() służy do dodawania łańcucha '-→' na początku każdego wiersza wyjścia.
$ użytkowników kotów.tekst$ awk -F "\t" 'OFS=",";sub(/^/, "---->");print $1,$2,$3' użytkowników.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń. Każda wartość pola jest oddzielona przecinkiem (,), a na początku każdego wiersza dodawany jest ciąg.
Przykład-7: Podstaw wartość pliku rozdzielanego tabulatorami za pomocą funkcji gsub()()
Funkcja gsub() jest używana w poleceniu 'awk' do globalnego podstawienia. Wszystkie wartości łańcuchowe pliku zastąpią miejsca, w których pasuje wzorzec wyszukiwania. Główna różnica między funkcjami sub() i gsub() polega na tym, że funkcja sub() zatrzymuje zadanie podstawienia po znalezieniu pierwszego dopasowania, a funkcja gsub() przeszukuje wzorzec na końcu pliku w celu podstawienia. Następujące polecenie „awk” przeszuka globalnie słowa „nila” i „Mira” w pliku i zastąpi wszystkie ich wystąpienia tekstem „Nieprawidłowa nazwa”, gdzie wyszukiwane słowo pasuje.
$ użytkowników kotów.tekst$ awk -F '\t' 'gsub(/nila|Mira/, "Nieprawidłowa nazwa"); print' użytkowników.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń. Słowo „nila” występuje dwa razy w trzecim wierszu pliku i zostało zastąpione słowem „Nieprawidłowa nazwa” w danych wyjściowych.
Przykład 8: Wydrukuj sformatowaną zawartość z pliku rozdzielanego tabulatorami
Następujące polecenie 'awk' wypisze pierwszą i drugą kolumnę pliku z formatowaniem przy użyciu printf. Dane wyjściowe pokażą nazwę użytkownika, umieszczając adres e-mail w nawiasach.
$ użytkowników kotów.tekst$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' użytkowników.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.
Wniosek
Każdy plik rozdzielany tabulatorami można łatwo przeanalizować i wydrukować z innym ogranicznikiem za pomocą polecenia „awk”. Sposoby analizowania plików rozdzielanych tabulatorami i drukowania w różnych formatach zostały pokazane w tym samouczku na wielu przykładach. W tym samouczku wyjaśniono również użycie funkcji sub() i gsub() w poleceniu 'awk' do zastępowania zawartości pliku rozdzielanego tabulatorami. Mam nadzieję, że ten samouczek pomoże czytelnikom łatwo przeanalizować plik rozdzielany tabulatorami po prawidłowym przećwiczeniu przykładów tego samouczka.