2010-11-19 19 views
-1

Hallo, ich muss über Zeichen in string in bash einschließlich Leerzeichen gehen. Wie kann ich es tun?strings in bash

+3

Um eine nützliche Antwort zu erhalten, müssen Sie mehr Details und vielleicht ein Beispiel für die Ergebnisse liefern, die Sie erhalten möchten. –

Antwort

1

Nicht sicher, was Sie wirklich meinen, aber in fast allen Fällen können Probleme mit Strings einschließlich Leerzeichen durch Anführen gelöst werden. Wenn Sie a nice day haben, versuchen Sie "a nice day" oder 'a nice day'.

1

Sie verwenden ein externes Tool dafür. Die Bash-Shell soll wirklich dazu dienen, andere Programme in meist einfachen Kombinationen zusammen zu kleben.

Je nachdem, was Sie benötigen, können Sie cut, awk, sed oder sogar perl verwenden.

1

Versuchen Sie, diese

#/bin/bash 

str="so long and thanks for all the fish" 
while [ -n "$str" ] 
     do 
       printf "%c\n" "$str" 
       str=${str#?} 
done 
2

Bash tut Unterstützung Teil direkt (Wenn das ist, was der OP will):

$ A='Hello World!' 
$ echo "${A:3:5}" 
lo Wo 
$ echo "${A:5:3}" 
Wo 
$ echo "${A:7:3}" 
orl 

Die Erweiterung verwendet wird verallgemeinert:

${PARAMETER:OFFSET:LENGTH} 

Parameter ist Ihr Variablenname. OFFSET und LENGTH sind numerische Ausdrücke, die von "let" verwendet werden. Weitere Informationen finden Sie auf der Bash-Info-Seite zur Shell-Parameter-Erweiterung, da es einige wichtige Details dazu gibt.

Daher, wenn Sie z.B. Drucken Sie alle Zeichen in den Inhalt einer Variablen jeder auf seine eigene Linie könnten Sie so etwas tun:

$ for ((i=0; i<${#A}; i++)); do echo ${A:i:1}; done 

Der Vorteil dieser Methode ist, dass Sie müssen nicht an anderer Stelle die Zeichenfolge speichern, mangle seinen Inhalt oder verwenden Sie externe Dienstprogramme mit Prozesssubstitution.

Verwandte Themen