Ich habe so eine Zeichenfolge:
|abcdefg|
Und ich möchte eine neue Zeichenfolge erhalten, die in irgendeiner Weise (wie string2) mit der ursprünglichen Zeichenfolge ohne die beiden |
Zeichen am Anfang und am Ende der Zeichenfolge aufgerufen wird, damit ich Folgendes erhalte :
abcdefg
Ist das in bash möglich?
bash
command-line
scripts
Matteo Pagliazzi
quelle
quelle
awk -F\| '{ print $2 }' <<<"|string|"
awk
Lösungen. Ich muss lernenawk
.IFS='|' read string2 <<< $string
:)"${string:1:-1}"
man bash
.Hier ist eine Lösung, die unabhängig von der Länge der Zeichenfolge (Bash) ist:
quelle
Nach ein paar hier aufgelisteten Beiträgen scheint es der einfachste Weg zu sein, dies zu tun:
edit: arbeitet auf Ubuntu mit Bash 4.2; funktioniert nicht unter centOS mit bash 4.1
quelle
Eine andere Möglichkeit ist die Verwendung von
head
&tail
-Befehlen:quelle
[something something]
mit dem Ziel, Klammern zu schneiden, alsoecho "[something something]" | tail -c +2 | head -c -2
klappte es. Danke für einen Tipp!echo -n "|abcdefg|" | tail -c +2 | head -c -1
. Ich bin mir nicht sicher, warum meine Änderungen abgelehnt wurden. Ehrlich gesagt ist das sehr traurig. Sieheman head
für weitere InformationenUnd noch einer:
quelle
Sie können auch sed verwenden, um | zu entfernen nicht nur das Symbol selbst referenzieren, sondern Positionsreferenzen wie in:
Wobei ':' die Begrenzer sind (Sie können sie durch / oder ein beliebiges Zeichen ersetzen, das nicht in der Abfrage enthalten ist. Alle Zeichen, die auf das s folgen, tun dies.) Hier bedeutet ^ (Caret) am Anfang der Eingabezeichenfolge und $ (Dollar) bedeutet Am Ende. Das . (Punkt), dass es nach dem Caret steht und dass es vor dem Dollarzeichen ein einzelnes Zeichen darstellt. Mit anderen Worten, wir löschen das erste und das letzte Zeichen. Beachten Sie, dass dadurch alle Zeichen gelöscht werden, auch wenn | Es ist nicht in der Zeichenfolge vorhanden.
EX:
quelle
Shell-Funktion
Ein etwas ausführlicherer Ansatz, der jedoch mit allen Arten von ersten und letzten Zeichen funktioniert, muss nicht identisch sein. Die Grundidee ist, dass wir eine Variable nehmen, Zeichen für Zeichen lesen und nur diejenigen anhängen, die wir einer neuen Variablen hinzufügen möchten
Hier ist die ganze Idee in eine nette Funktion formatiert
Und hier ist die gleiche Funktion in Aktion:
Python
oder auf der Kommandozeile:
AWK
Rubin
quelle
Kleine und universelle Lösung:
Besonderes in diesem Fall und damit das '|' Zeichen kann da sein oder nicht:
quelle
Von http://tldp.org/LDP/abs/html/parameter-substitution.html
quelle