Was oben als Eimer bezeichnet wird, nennen wir Variablen in den meisten Programmiersprachen. Darüber hinaus wird ein Konzept, das wir als Typisierung bezeichnen, auf das grundlegende Konzept einer Variablen aufgebaut.
Das Tippen ist ein Name für das erwartete Speicher- und Zuordnungsverhalten einer Variablen. Wie sieht das aus, wenn wir zu Eimer zurückkehren??
In der Little Bucket World haben wir für unsere Programme geschaffen, Eimer haben Namen. Das ist es.
Nehmen wir nun an, dass unsere Programme nicht den Luxus haben, unendlich viele Jetson -Taschen zur Verfügung zu haben, um sie als Eimer zu verwenden. Bevor ein Eimer mit seinem Inhalt benannt und gefüllt ist, muss das Programm die Form und Verfassung jedes Eimers entscheiden, den es berührt. Ich weiß, es scheint ein wenig übertrieben zu sein, aber es ist ein notwendiges Übel. Alle Eimer sind an ihren Typ gebunden.
Wie sieht das aus, wenn wir zum Schlagen zurückkehren??
Funktionen, Arrays und Zeichenfolgen werden in Variablen gespeichert. Bash verwendet das, was wir als Attribute aufrufen, um Änderungen des Verhaltens bei der Zuordnung zu kennzeichnen. Obwohl es ein System gibt, um das Verhalten der variablen Zuordnung zu ändern, werden die Werte in Variablen als Zeichenfolgen gespeichert.
In Bash lebt ein Programm, um Zeichenfolgen in Variablen zu versetzen und sie für die spätere Verwendung zu benennen. Diese Saiten stehen zur Verfügung, um während der gesamten Lebensdauer des Programms zu manipulieren. Das Programm lebt, um Saiten zu manipulieren.
Hier werden wir die Bash -String -Manipulation im Atem und so viel Tiefe wie möglich abdecken, um den Lesern aller Marken und Formen zugänglich zu sein. Weiter lesen.
Was ist String Manipulation in Bash
String Manipulation ist eine Operation auf einer Zeichenfolge, die ihren Inhalt ändert. In Bash ist die String Manipulation in zwei Formen erhältlich: Pure Bash String Manipulation und String Manipulation über externe Befehle. Hier werden wir beide Arten von Saitenmanipulation berühren.
Nehmen wir an, dass wir eine Variable in Bash haben, die eine Zeichenfolge hält, die wir namens String manipulieren möchten. In dem Fall, dass mehr als eine Zeichenfolge existiert, nennen wir die Strings String, String2,… Außerdem können wir uns für eine Zeichenfolge entscheiden, die etwas Sinnvolleres als Zeichenfolge nennt, um das Verständnis des String -Inhalts und der beabsichtigten Verwendung zu fördern.
Verkettungsketten - Zeichenfolgen in einer Zeichenfolge auflisten
In Bash ist die einfache Möglichkeit, Strings zu verkettet. Die resultierende Zeichenfolge ist eine neue Zeichenfolge, die alle aufgeführten Zeichenfolgen enthält.
$ string1 $ string2…
Beispiel: String -Verkettung durch Auflistung von Zeichenfolgen in der Zeichenfolge
String = "eins";
String2 = "zwei";
string3 = $ string $ string2;
echo $ string3
Ausgang
eins zwei
Saiten in einem Array auflisten
In Bash ist eine andere Möglichkeit, Strings zu verkettet. Im Gegensatz zum obigen Beispiel muss jedoch zusätzliche Arbeiten erforderlich sein, um die Elemente des Weißraums zu entfernen, um Array -Elemente zu trennen.
Array ($ Strings $ Strings2…)
Beispiel: String -Verkettung durch Auflistung von Zeichenfolgen in einem Array
Saiten = ("eins" "zwei");
echo $ Strings [@]
Ausgang
eins zwei
Verkürzen Sie eine Zeichenfolge - verschieben Sie eine Zeichenfolge nach links
Eine Möglichkeit, eine Schnur zu verkürzen, besteht darin, ihren Inhalt nach links zu verschieben. Die Saiteninhalte verschwinden nach links, was zu einer kürzeren Zeichenfolge führt.
Beispiel: Verschiebung der linken Schleife
string = "abcdefghijklmnopqrstuvwxyz";
für i in $ (SEQ 0 $ (($ #String - 1));
Tun
echo $ String: $ i;
Erledigt
Ausgang
ABCDEFGHIJKLMNOPQRSTUVWXYZ
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
Schalten Sie eine Zeichenfolge nach rechts, erhalten Sie String -Substring
Eine andere Möglichkeit, eine Zeichenfolge in Bash zu verkürzen, besteht darin, das Substring einer Zeichenfolge zu erhalten. Der resultierende Vorgang kann verwendet werden, um einen Schaltvorgang nach rechts wie der obigen Methode zu implementieren.
Beispiel: Verschiebung der rechten Schleife
string = "abcdefghijklmnopqrstuvwxyz";
für i in $ (SEQ 0 $ (($ #String - 1));
Tun
echo $ String: 0: $ #String -i;
Erledigt
Ausgang
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMN
ABCDEFGHIJKLM
ABCDEFGHIJKL
ABCDEFGHIJK
ABCDEFGHIJ
ABCDEFGHI
A B C D E F G H
ABCDEFG
ABCDEF
Abcde
A B C D
ABC
ab
A
Beispiel: Schichtschleifepyramide
Lassen Sie uns zum Spaß die oben genannten Beispiele der beiden Schaltschleife kombinieren, um einen Schritt in unserem Terminal zu ziehen.
Beispiel: Schaltschleifeschritt
string = "abcdefghijklmnopqrstuvwxyz";
für i in $ (SEQ 0 $ (($ #String - 1));
Tun
echo $ String: 0: $ #String -i;
Erledigt
| TAC;
für i in $ (SEQ 0 $ (($ #String - 1));
Tun
echo $ String: $ i;
Erledigt
Ausgang
A
ab
ABC
A B C D
Abcde
ABCDEF
ABCDEFG
A B C D E F G H
ABCDEFGHI
ABCDEFGHIJ
ABCDEFGHIJK
ABCDEFGHIJKL
ABCDEFGHIJKLM
ABCDEFGHIJKLMN
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
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
Kapitalisieren Sie die gesamte Saite in Bash
In Bash4 oder später können Sie die druckbaren Zeichen mithilfe der Parametererweiterung wie folgt Kapitalisierung nutzen.
$ String ^^
Nehmen wir an, wir werfen die ersten 10 Wörter der Ausgabe aus dem Beispiel für Schichtschleife in eine Variable namens Pyramide. Beachten Sie, dass das erwartete Verhalten des Echo -Echo -Inhalts nicht wie folgt ist.
Befehl
pyramid = "a ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ pyramid
Ausgang
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Beachten Sie, dass es, wie Sie es erwarten würden, keine Kappen gibt. Lassen Sie uns es in die Luft jagen. Das heißt, wir werden alle ihre Charaktere Caps machen.
Befehl
echo $ pyramid ^^
Ausgang
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Das war einfach! Wie wäre es, wenn wir den ersten Buchstaben nur in einer Zeichenfolge in Kappen wie einen Satz konvertieren wollen? Ja wir können! Alles, was wir tun müssen, ist etwas weniger hart zu versuchen, ein Charakter weniger, um genau zu sein.
Nutzen Sie nur den ersten Brief in einer Zeichenfolge
Vielleicht ist es nicht die Bash -String -Manipulationstechnik, die Sie suchen, nicht die gesamte Schnur, die Sie suchen. Was ist, wenn Sie den ersten Buchstaben nur wie einen Satz kapitalisieren müssen??
Befehle
pyramid = "a ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ pyramid^
Ausgang
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Nehmen wir nun an, dass wir mehr daran interessiert sind, Streicher in Kleinbuchstaben umzuwandeln. Zum Glück gibt es eine reine Bash -Art, dies zu tun. Das ist die Expansion der Parameterweiterung.
Konvertieren Sie die gesamte Saite in Kleinbuchstaben in Bash
Konvertieren Sie eine Zeichenfolge in den gesamten Kleinbuchstaben in Bash, indem Sie den Parameter-Expansionsoperator für die Doppelkomma („,,“) verwenden.
Befehle
pyramid = "a ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ pyramid;
echo $ pyramid ,,
Ausgang
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Konvertieren Sie nur den ersten Buchstaben in einer Zeichenfolge in Kleinbuchstaben
Konvertieren Sie das erste Zeichen in einem String-Kleinbuchst.
Befehle
pyramid = "a ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ pyramid;
echo $ pyramid,
Ausgang
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Weisen Sie einer leeren Zeichenfolge einen Wert zu und geben Sie seinen Wert zurück
Oft möchten Sie einen Fallback für eine leere Zeichenfolge festlegen und seinen Wert während eines Bash -Skripts bestehen, wie z. B. den Fall, wenn sie optional Variablen aus der Umgebung annehmen. Dies kann unter Verwendung der Parameterausdehnung erreicht werden.
Befehle
echo [$ str];
echo [$ str: = leer];
echo [$ str]
Ausgang
[]
[leer]
[leer]
Anmerkungen: STR wird nicht zugewiesen
Ersetzen Sie ein Muster, das einmal in einer Zeichenfolge in der Bash auftritt
Wir haben eine Saite in einer Variablen und möchten das erste Ereignis eines Substrings ersetzen. Hier ist wie.
Grundnutzung
$ str/muster/Ersatz
Befehle
STR = "0110110001101001011011001110101011000011010011010010110110011101001111011
001100011011011101101101 ";
echo $ str;
echo $ str/111/000
Ausgang
0110110001101001011011001110101011111101000011010010110110011101
000010111001100011011011101101101
011011000110100101100000000101001000011010000110100101100000000001
0000100000011000110110000101101101
Ersetzen Sie alle Vorkommen eines Musters in einer Zeichenfolge in der Bash
Wir haben eine Zeichenfolge in einer Variablen und möchten alle Vorkommen eines Substrings ersetzen. Hier ist wie.
Grundnutzung
$ str // Muster/Ersatz
Befehle
STR = "0110110001101001011011001110101111111010000110100101101100111010
1000010111001100011011011101101101 ";
echo $ str;
Echo $ st // 111/000
Ausgang
011011000110100101101100111010111111110100001101001011011100
111010000101110011000110110111101101
01101100011010010110000000010100100001101000011010010110000000
00010000100000011000110110000101101
So manipulieren Sie Strings in Bash mit externen Befehlen
Um Strings in Bash mit einem externen Befehl zu manipulieren. Kurz gesagt, was auch immer in $ () oder "als Befehl behandelt und an Ort und Stelle ersetzt wird. Ehrlich gesagt bevorzuge ich den ersten Weg; Sie können jedoch auch verwenden. Die einfache Möglichkeit, die Befehlssubstitution zu verwenden.
Befehle
Ergebnis = $ (Befehl)
Bei einer String -Manipulation unter Verwendung eines externen Befehls in Bash müssten wir das Echo einer Zeichenfolge an den Befehl leiten, es sei denn. So sollte das neue Ergebnis aussehen.
Befehle
result = $ (echo "$ result" | Befehl)
Lassen Sie uns jetzt versuchen, etwas Reales zu tun. Reduzieren Sie jedoch eine Zeichenfolge, die Wörter auf das letzte Wort in der Zeichenfolge enthält? Lassen Sie uns für dieses Beispiel den externen Befehl gawk verwenden.
Anmerkungen zu den folgenden Befehlen. Lassen Sie uns alles Kleinbuchstaben machen und Zeiträume loswerden. Das Zitat erfolgt von Linus Torvalds. Es ist ein sehr beliebtes Zitat.
Befehle
QUOTE = "Das Gespräch ist billig. Zeigen Sie mir den Code.";
last_word = $ (echo "$ quote //./ "| gawk 'print $ (nf)');
echo "$ last_word ,,"
Ausgang
Code
Hier haben wir behandelt, wie man die Saiten den reinen Bash -Weg manipuliert und externe Befehle verwendet. Für Pure Bash String Manipulationstechniken wurde eine Merkmal namens Parameterausdehnung verwendet. Andererseits wurde für den Fall externer Befehle die Befehlssubstitution verwendet. Beim Schreiben dieses Stücks habe ich meine Fähigkeit verbessert, Saiten in Bash zu manipulieren. Hoffentlich hast du es auch getan.
Beachten Sie, dass das Thema dieser Diskussion nicht vollständig behandelt wurde. Übungen bleiben jedoch für diejenigen übrig, die ein bisschen mehr basteln möchten. Für andere in diesem Artikel nicht enthaltene String -Manipulationen können Sie mich direkt kontaktieren oder den Editor kontaktieren.
Das ist genug String Manipulation, für jetzt… danke,