Awk

Jak przeanalizować plik rozdzielany tabulatorami za pomocą „awk”

Jak przeanalizować plik rozdzielany tabulatorami za pomocą „awk”

'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ło
Md. 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.

Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Gry Najlepsze gry wiersza poleceń dla systemu Linux
Najlepsze gry wiersza poleceń dla systemu Linux
Wiersz poleceń jest nie tylko twoim największym sprzymierzeńcem podczas korzystania z Linuksa - może być również źródłem rozrywki, ponieważ możesz go ...
Gry Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Jeśli lubisz grać w gry na Linuksie za pomocą gamepada zamiast typowego systemu wprowadzania klawiatury i myszy, jest kilka przydatnych aplikacji dla ...