Awk

AWK Przytnij białe znaki

AWK Przytnij białe znaki
Jako programista być może będziesz musiał pracować z różnymi plikami, aby przechowywać i manipulować danymi. Jedno z podstawowych zadań manipulacji plikami polega na usuwaniu białych znaków w plikach. Białe znaki składają się ze spacji, pustych linii, nbsp i tabulatorów. Programiści często muszą usuwać spacje, aby przechowywać tylko niezbędne dane i wyeliminować niepotrzebne spacje. Białe spacje mogą być spacją na początku (na początku wiersza) lub na końcu (na końcu wiersza).

Poniżej przedstawiono niektóre scenariusze, w których może być konieczne usunięcie białych znaków:

Możliwe jest ręczne usuwanie białych znaków, jeśli plik zawiera tylko kilka wierszy. Ale w przypadku pliku zawierającego setki wierszy trudno będzie ręcznie usunąć wszystkie spacje. W tym celu dostępne są różne narzędzia wiersza poleceń, w tym sed, awk, cut i tr. Wśród tych narzędzi awk jest jednym z najpotężniejszych poleceń.

Co to jest awk?

Awk to potężny i użyteczny język skryptowy używany do manipulacji tekstem i generowania raportów. Polecenie awk jest skrócone za pomocą inicjałów każdej z osób (Aho, Weinberger i Kernighan), którzy je stworzyli. Awk umożliwia definiowanie zmiennych, funkcji numerycznych, łańcuchów i operatorów arytmetycznych; tworzyć sformatowane raporty; i więcej.

W tym artykule wyjaśniono użycie polecenia awk do przycinania białych znaków. Po przeczytaniu tego artykułu dowiesz się, jak używać polecenia awk do wykonywania następujących czynności:

Polecenia w tym artykule zostały wykonane na Ubuntu 20.04 Ogniskowy system Fossa. Jednak te same polecenia można wykonać również w innych dystrybucjach Linuksa. Do uruchamiania poleceń opisanych w tym artykule użyjemy domyślnej aplikacji Terminal Ubuntu. Możesz uzyskać dostęp do terminala za pomocą skrótu klawiaturowego Ctrl+Alt+T.

W celach demonstracyjnych użyjemy przykładowego pliku o nazwie „sample.tekst.”aby wykonać przykłady podane w tym artykule.

Wyświetl wszystkie spacje w pliku

Aby wyświetlić wszystkie spacje obecne w pliku, prześlij dane wyjściowe polecenia cat do polecenia tr w następujący sposób:

$ próbka kota.tekst | tr " " "*" | tr "\t" "&"

To polecenie zastąpi wszystkie spacje w podanym pliku znakiem (*) (*). Po wprowadzeniu tego polecenia będziesz mógł wyraźnie zobaczyć, gdzie w pliku znajdują się wszystkie białe znaki (w tym zarówno początkowe, jak i końcowe spacje).

Znaki * na poniższym zrzucie ekranu pokazują, gdzie w przykładowym pliku znajdują się wszystkie spacje. Pojedynczy * reprezentuje pojedynczą spację.

Przytnij wszystkie białe spacje

Aby usunąć wszystkie białe spacje z pliku, potocz polecenie out of cat do polecenia awk w następujący sposób:

$ próbka kota.tekst | awk ' gsub(//,""); drukuj '

Gdzie

Powyższe polecenie zastępuje wszystkie spacje (//) niczym („”).

Na poniższym zrzucie ekranu widać, że wszystkie spacje, w tym początkowe i końcowe spacje, zostały usunięte z danych wyjściowych.

Przytnij wiodące białe znaki

Aby usunąć z pliku tylko początkowe spacje, należy potoku polecenie out of cat do polecenia awk w następujący sposób:

$ próbka kota.tekst | awk ' sub(/^[ \t]+/, ""); drukuj '

Gdzie

Powyższe polecenie zastępuje jedną lub więcej spacji na początku ciągu (^[ \t]+ ) niczym („”), aby usunąć wiodące białe znaki.

Na poniższym zrzucie ekranu widać, że wszystkie wiodące spacje zostały usunięte z danych wyjściowych.

Możesz użyć następującego polecenia, aby sprawdzić, czy powyższe polecenie usunęło wiodące spacje:

$ próbka kota.tekst | awk ' sub(/^[ \t]+/, ""); drukuj ' | tr " " "*" |
tr "\t" "&"

Na poniższym zrzucie ekranu wyraźnie widać, że usunięto tylko wiodące spacje.

Przytnij końcowe spacje

Aby usunąć z pliku tylko końcowe spacje, należy potoku polecenie out of cat do polecenia awk w następujący sposób:

$ próbka kota.tekst | awk ' sub(/[ \t]+$/, ""); drukuj '

Gdzie

Powyższe polecenie zastępuje jedną lub więcej spacji na końcu ciągu ([ \t]+ $) niczym ( „”), aby usunąć końcowe spacje.

Możesz użyć następującego polecenia, aby sprawdzić, czy powyższe polecenie usunęło końcowe spacje:

$ próbka kota.tekst | awk ' sub(/[ \t]+$/, ""); drukuj ' | tr " " "*" | tr "\t" "&"

Na poniższym zrzucie ekranu wyraźnie widać, że końcowe spacje zostały usunięte.

Przycinaj zarówno wiodące, jak i końcowe spacje

Aby usunąć z pliku zarówno początkowe, jak i końcowe spacje, należy przekazać polecenie out of cat do polecenia awk w następujący sposób:

$ próbka kota.tekst | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); drukuj '

Gdzie

Powyższe polecenie zastępuje spacje wiodącą i końcową (^[ \t]+ [ \t]+$) bez niczego („”), aby je usunąć.

Aby ustalić, czy powyższe polecenie usunęło zarówno początkowe, jak i końcowe spacje z pliku, użyj następującego polecenia:

$ próbka kota.tekst | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); drukuj ' |
tr " " "*" | tr "\t" "&"

Z poniższego zrzutu ekranu wyraźnie widać, że zarówno początkowe, jak i końcowe spacje zostały usunięte i pozostały tylko spacje między ciągami.

Zastąp wiele spacji pojedynczą spacją

Aby zastąpić wiele spacji pojedynczą spacją, potocz polecenie out of cat do polecenia awk w następujący sposób:

$ próbka kota.tekst | awk ' gsub(/[ ]+/," "); drukuj '

Gdzie:

Powyższe polecenie zastępuje wiele białych znaków ([ ]+) pojedynczym białym znakiem („”).

Możesz użyć następującego polecenia, aby sprawdzić, czy powyższe polecenie zastąpiło wiele spacji białymi znakami:

$ próbka kota.tekst | awk ' sub(/[ \t]+$/, ""); drukuj ' | | tr " " "*" | tr "\t" "&"

W naszym przykładowym pliku było wiele spacji. Jak widać, w próbce wiele białych znaków.plik txt został zastąpiony pojedynczym odstępem za pomocą polecenia awk.

Aby przyciąć spacje tylko w tych wierszach, które zawierają określony znak, taki jak przecinek, dwukropek lub średnik, użyj polecenia awk z -fa separator wejściowy.

Na przykład poniżej pokazano nasz przykładowy plik, który zawiera spacje w każdym wierszu.

Aby usunąć spacje tylko z wierszy zawierających przecinek (,), polecenie wyglądałoby następująco:

$ próbka kota1.tekst | awk -F, '/,/gsub(//,""); wydrukować'

Gdzie (-FA,) jest separatorem pól wejściowych.

Powyższe polecenie usunie i wyświetli tylko spacje z linii zawierających określony znak (,). Pozostałe linie pozostaną nienaruszone.

Wniosek

To wszystko, co musisz wiedzieć, aby przyciąć białe znaki w swoich danych za pomocą polecenia awk. Usunięcie spacji z Twoich danych może być wymagane z kilku różnych powodów. Bez względu na przyczynę, możesz łatwo usunąć wszystkie spacje w swoich danych za pomocą poleceń opisanych w tym artykule. Za pomocą polecenia awk można nawet przycinać początkowe lub końcowe białe znaki, przycinać zarówno początkowe, jak i końcowe spacje oraz zastępować wiele spacji pojedynczą spacją.

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...