Bash Manipulation

Bash Manipulation
W Bash, podobnie jak w żadnym innym języku programowym, program żyje, aby umieścić rzeczy do wiader i nazwać je do późniejszego użycia. Te wiadra są dostępne do manipulowania przez cały okres życia program. Program żyje w celu manipulowania wiadrami.

To, co nazywa się powyżej, to coś, co nazywamy zmiennymi w większości języków programowania. Ponadto, zbliżając się do podstawowej koncepcji zmiennej, wprowadza się koncepcję, którą nazywamy pisaniem.

Wpisowanie to nazwa oczekiwanego zachowania przechowywania i przypisania zmiennej. Jak to wygląda, kiedy wracamy do wiader?

W małym świecie kubełkowym stworzyliśmy dla naszych programów, wiadra mają nazwy. Otóż ​​to.

Załóżmy teraz, że nasze programy nie mają luksusu posiadania nieskończonej liczby toreb Jetson do ich dyspozycji. Zanim wiadro zostanie nazwane i wypełnione jego zawartością, program musi zdecydować o kształcie i konstytucji każdego dotkniętego wiadra. Wiem, że wydaje się to trochę przesadne, ale jest to zło konieczne. Wszystkie wiadra są związane ich typem.

Manipulacja strumieniem w Bash

Jak to wygląda, kiedy wracamy do Bash?

Funkcje, tablice i struny są przechowywane w zmiennych. Bash używa tego, co nazywamy atrybutami, aby oznaczyć zmiany zachowań podczas przypisania. Pomimo tego, że istnieje system modyfikowania zachowania przypisania zmiennych, gdy wszystko sprowadza się do niego, wartości są przechowywane w zmiennych jako ciągi.

W Bash program żyje w celu umieszczenia sznurków w zmienne i wymienić je do późniejszego użycia. Te struny są dostępne do manipulowania przez cały okres życia programu. Program żyje w celu manipulowania strunami.

Tutaj omówimy manipulację strunami Bash w oddechu i jak najwięcej głębokości, aby być dostępnym dla czytelników wszystkich tworzenia i kształtów. Czytaj.

Co to jest manipulacja smyczką w Bash

Manipulacja łańcuchem to operacja na ciągu zmieniającej jego zawartość. W Bash manipulacja ciągami występuje w dwóch formach: manipulacja czystym bashem i manipulacja ciągami za pomocą poleceń zewnętrznych. Tutaj dotkniemy obu rodzajów manipulacji strunami.

Załóżmy, że mamy zmienną w Bash trzymającą ciąg, który chcemy manipulować nazwanym ciągiem. W przypadku, gdy istnieje więcej niż jeden ciąg, nazywamy ciąg stringów, String2,… Możemy również zdecydować się na nazwanie ciągu czegoś bardziej znaczącego niż ciąg, aby promować zrozumienie treści ciągu i zamierzonego użycia.

Conatenate Strings - Lista ciągów w ciągu

W Bash łatwym sposobem na połączenie ciągów jest wymienienie ciągów w porządku. Powstały ciąg to nowy ciąg zawierający wszystkie wymienione ciągami.

$ String1 $ String2…

Przykład: Contagenation String przez wymienianie ciągów w ciągu


string = "one";
string2 = "dwa";
string3 = $ String $ String2;
Echo $ String3

Wyjście

jeden dwa

Lista strun w tablicy

W BASH innym sposobem na połączenie ciągów jest wymienianie ciągów w tablicy i użycie rozszerzenia parametrów w celu rozszerzenia tablicy na połączony ciąg. Jednak w przeciwieństwie do powyższego przykładu usunięcie białej przestrzeni oddzielających elementy tablicy może wymagać dodatkowej pracy.

array ($ strings $ strings2…)

Przykład: Ciąg Containation przez wymienianie ciągów w tablicy


strings = („jeden” „dwa”);
echo $ strings [@]

Wyjście

jeden dwa

Skróć ciąg - Przesuń ciąg w lewo

Jednym ze sposobów skrócenia ciągu jest przesunięcie jego zawartości w lewo. Zawartość sznurka przesunięta w lewo znika, co skutkuje krótszym łańcuchem.

Przykład: Zmiana lewej pętli


string = "abcDefghijklmnopqrstuvwxyz";
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ String: $ i;
zrobione

Wyjście

ABCDEFGHIJKLMNOPQRSTU VWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXYZ
defghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
FGHIJKLMNOPQRSTUVWXYZ
ghijklmnopqrstuvwxyz
HIJKLMNOPQRSTUVWXYZ
ijklmnopqrstuvwxyz
jklmnopqrstuvwxyz
klmnopqrstuvwxyz
LMNOPQRSTUVWXYZ
mnopqrstuvwxyz
nopqrstuvwxyz
Opqrstuvwxyz
pqrstuvwxyz
Qrstuvwxyz
rstuvwxyz
Stuvwxyz
TUVWXYZ
Uvwxyz
VWXYZ
WXYZ
XYZ
Yz
z

Przesuń ciąg w prawo, zdobądź rozkład łańcucha

Innym sposobem skrócenia ciągu w Bash jest uzyskanie podłańca ciągu. Powstała operacja może być użyta do wdrożenia operacji przesunięcia w prawo, podobnej do powyższej metody.

Przykład: Zmiana prawej pętli


string = "abcDefghijklmnopqrstuvwxyz";
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ string: 0: $ #string -i;
zrobione

Wyjście

ABCDEFGHIJKLMNOPQRSTU VWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMN
ABCDEFGHIJKLM
ABCDEFGHIJKL
ABCDEFGHIJK
ABCDEFGHIJ
ABCDEFGHI
AbcDefgh
ABCDEFG
Alfabet
Abcde
Abcd
ABC
Ab
A

Przykład: piramida pętli zmiany biegów

Dla zabawy połączmy dwa przykłady pętli zmiany powyżej, aby narysować krok w naszym terminalu.

Przykład: Krok pętli zmiany


string = "abcDefghijklmnopqrstuvwxyz";

dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ string: 0: $ #string -i;
zrobione
| tac;

dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ String: $ i;
zrobione

Wyjście

A
Ab
ABC
Abcd
Abcde
Alfabet
ABCDEFG
AbcDefgh
ABCDEFGHI
ABCDEFGHIJ
ABCDEFGHIJK
ABCDEFGHIJKL
ABCDEFGHIJKLM
ABCDEFGHIJKLMN
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTU VWXYZ
ABCDEFGHIJKLMNOPQRSTU VWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXYZ
defghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
FGHIJKLMNOPQRSTUVWXYZ
ghijklmnopqrstuvwxyz
HIJKLMNOPQRSTUVWXYZ
ijklmnopqrstuvwxyz
jklmnopqrstuvwxyz
klmnopqrstuvwxyz
LMNOPQRSTUVWXYZ
mnopqrstuvwxyz
nopqrstuvwxyz
Opqrstuvwxyz
pqrstuvwxyz
Qrstuvwxyz
rstuvwxyz
Stuvwxyz
TUVWXYZ
Uvwxyz
VWXYZ
WXYZ
XYZ
Yz
z

Kapitalizuj cały ciąg w Bash

W Bash4 lub nowszym możesz wykorzystać znaki do wydruku za pomocą rozszerzenia parametrów w następujący sposób.

$ String ^^

Załóżmy, że wrzucamy pierwsze 10 słów wyjścia z przykładu kroku pętli zmianowej w zmienną zwaną piramidą. Zauważ, że niezmodyfikowane, oczekiwane zachowanie powtórzenia jej treści jest następujące.

Komenda


Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ piramid

Wyjście

A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ

Zauważ, że jak można się spodziewać, nie ma czapek. Wrzućmy to. To znaczy, że wszystkie jej postacie nakładamy.

Komenda

Echo $ Pyramid ^^

Wyjście

A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ

To było łatwe! A może jeśli chcemy przekonwertować tylko pierwszą literę w ciągu na czapki jak zdanie? Tak możemy! Wszystko, co musimy zrobić, to spróbować nieco mniej trudnego, co jest dokładne, aby być dokładnym.

Kapitalizuj tylko pierwszą literę w ciągu

Może kapitalizacja całego sznurka nie jest techniką manipulacji sznurką bashu, której szukasz. Co jeśli musisz tylko wykorzystać pierwszy list jak zdanie?

Polecenia

Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ Pyramid^

Wyjście

A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ

Załóżmy teraz, że jesteśmy bardziej zainteresowani przekształceniem ciągów w małe litery. Na szczęście istnieje, aby to zrobić czysto; to jest użycie rozszerzenia parametrów.

Konwertuj cały ciąg na małe litery w Bash

Konwertuj ciąg na wszystkie małe litery w Bash za pomocą operatora rozszerzania parametrów podwójnych („,”).

Polecenia


Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ Pyramid;
Echo $ Pyramid ,,

Wyjście

A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ

Konwertuj tylko pierwszą literę w ciągu na małe litery

Konwertuj pierwszy znak w ciągu małej litery w BASH za pomocą operatora rozszerzenia parametrów single-comma („”).

Polecenia


Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ Pyramid;
Echo $ Pyramid,

Wyjście

A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ

Przypisz pusty ciąg A i zwróć jego wartość

Często chcesz ustawić awarie pustego ciągu i mieć jego wartość utrzymującą się w całym skrypcie Bash, takim jak przypadek, gdy opcjonalnie akceptuje zmienne ze środowiska. Można to osiągnąć za pomocą rozszerzenia parametrów.

Polecenia


echo [$ str];
echo [$ str: = pusty];
echo [$ str]

Wyjście

[] []
[pusty]
[pusty]

Uwagi: Zakłada się, że STR jest niepodważany

Wymień wzór występujący w ciągu raz w Bash

Mamy sznurek siedzący w zmiennej i chcemy zastąpić pierwsze wystąpienie podłoża. Oto jak.

Podstawowe użycie

$ str/wzór/zamiennik

Polecenia


str = "011011000110100101111001110101111000011010000110100101101110011101000010111
0011000110111101101101 ";
echo $ str;
echo $ str/111/000

Wyjście

01101100011010101111001110101111000011010000110100101101110011101
0000101110011000110110111101101101
0110110001101011000000000010100001000011010000110100101100000000001
00001000011000110110000101101101

Wymień wszystkie wystąpienia wzoru w sznurku w Bash

Mamy ciąg w zmiennej i chcemy zastąpić wszystkie wystąpienia podłoża. Oto jak.

Podstawowe użycie

$ str // wzór/zamiennik

Polecenia


str = "01101100011010010111100111010111100001101000011010010110111001110
1000010111001110110111101101101 ";
echo $ str;
echo $ str // 111/000

Wyjście

011011000110101101110011101011110000110100001101001011011100
11101000010111001100011011111101101101
011011000110101100000000001010000100001101000011010010110000000
00010000100000011000110110000101101101

Jak manipulować ciągami w Bash za pomocą poleceń zewnętrznych

Aby manipulować strunami w Bash za pomocą zewnętrznego polecenia, musimy użyć funkcji, którą zastąpienie instrukcji obsługi bash. Krótko mówiąc, cokolwiek jest wewnątrz $ () lub „jest traktowane jako polecenie i zastąpione na miejscu. Szczerze mówiąc, wolę pierwszy sposób; Możesz jednak użyć jednego z nich. Łatwym sposobem użycia podstawienia dowodzenia jest przypisanie wyniku zastąpienia dowództwa do zmiennej w następujący sposób.

Polecenia

wynik = $ (polecenie)

W przypadku manipulacji ciągami za pomocą zewnętrznego polecenia w Bash musielibyśmy zaakceptować echo łańcucha do polecenia, chyba że przekazanie łańcucha do polecenia jako parametr jest zaakceptowane. Oto, jak powinien wyglądać nowy wynik.

Polecenia

wynik = $ (echo "$ wynik" | polecenie)

Teraz spróbujmy zrobić coś prawdziwego. Jednak zmniejsz łańcuch zawierający słowa do ostatniego słowa w ciągu? W tym przykładzie użyjmy zewnętrznego Gawk poleceń.

Uwagi na temat następujących poleceń. Zróbmy wszystko małych liter i pozbyć się okresów. Cytat jest autorstwa Linus Torvalds. To jest naprawdę popularny cytat.

Polecenia


QUOTE = "Talk jest tani. Pokaż mi kod.";
last_word = $ (echo "$ cytat //./ "| gawk 'print $ (nf)');
echo "$ last_word ,,"

Wyjście

kod

Podsumowując manipulację sznurkiem w Bash

Tutaj omówiliśmy, jak manipulować strunami w sposób czystej bashu, a także korzystać z poleceń zewnętrznych. W przypadku technik manipulacji strunami czystej bash zastosowano funkcję o nazwie Parameter Expansion. Z drugiej strony, w przypadku poleceń zewnętrznych użyto zastąpienia dowodzenia. Przyjmująco, pisząc ten utwór, poprawiłem swoją zdolność do manipulowania strunami w Bash. Mam nadzieję, że ty też zrobiłeś.

Zauważ, że temat tej dyskusji nie był traktowany w całości. Jednak dla tych, którzy chcieliby trochę bardziej majstrować. W przypadku innych manipulacji stringami nie zawartymi w tym artykule możesz skontaktować się ze mną bezpośrednio lub skontaktować się z redaktorem.

To wystarczy manipulacja smyczką, na razie… dzięki,