So erstelle ich mein Bash-Array:
%Vor%Die Datei "lines.txt" besteht aus den folgenden Zeichenfolgen
%Vor% Nach der Erstellung von ${myarr[@]}
kann ich einfach auf jedes Element (Zeile) in diesem Array zugreifen, das
Aber was, wenn ich nur world!
extrahieren möchte? Ist es möglich, world!
von 0 Element von myarr
zu extrahieren? Was ist am wichtigsten, ist es möglich, ein letztes Wort aus dem Element myarr
zu extrahieren?
Ich weiß, dass Sie in Python myarr[0][3]
machen können und das wird den Trick machen, wie wäre es mit bash?
Sie können Wörter aus einem String (was die Array-Elemente sind) mithilfe von Modifikatoren in der Variablenerweiterung extrahieren: #
(Präfix entfernen), ##
(Präfix entfernen, gierig), %
(Suffix entfernen ), und %%
(Suffix entfernen, gierig).
Wie Sie sehen, können Sie sich hier etwas vorstellen, aber @ chepners Vorschlag, es in ein Array zu verwandeln, wird irgendwann leichter. Außerdem sind die Formeln, die ich für das Extrahieren des zweiten Wortes vorschlagen, etwas fragwürdig: Wenn Sie meine Formel verwenden, um das dritte Wort einer Zeichenkette zu extrahieren, die nur zwei Wörter hat, wird die erste Trimmung fehlschlagen, und es wird beim Drucken der erstes (!) Wort statt Leerzeichen. Wenn Sie zwei Leerzeichen hintereinander haben, wird dies als ein Wort mit der Länge null und mit einem Leerzeichen auf jeder Seite behandelt ...
Übrigens, beim Erstellen des Arrays halte ich es für etwas sauberer, +=(newelement)
zu verwenden, anstatt den Array-Index explizit zu verfolgen: