2010-11-19 8 views
-1

こんにちは私はスペースを含むbashの文字列に移動する必要があります。どうしたらいいですか?bashの文字列

+3

有用な回答を得るには、より詳細な情報と、おそらく得ようとしている結果の例を提供する必要があります。 –

答えて

1

本当に何を意味するのかわかりませんが、ほとんどすべての場合、空白を含む文字列の問題は、引用することで解決できます。

a nice dayがある場合は、"a nice day"または'a nice day'を試してください。

1

外部ツールを使用しています。 bashシェルは、通常、単純な組み合わせで他のプログラムを一緒に接着するために使用されることを意図しています。

必要に応じて、cut、awk、sed、またはperlを使用することができます。

1

試してみてください。この

#/bin/bash 

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

(つまりOPが何を望んだ場合)bashは直接サポートサブストリングを行います。

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

として利用拡大が一般化される:PARAMETERがある

${PARAMETER:OFFSET:LENGTH} 

あなたの変数名。 OFFSETとLENGTHは `let 'が使う数値式です。これに関するいくつかの重要な詳細があるので、詳細については、シェル・パラメータ拡張のbash情報ページを参照してください。

したがって、たとえばこの方法の利点は、あなたが他の場所で文字列を格納する必要がないことです

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

、その内容をマングル:あなたはこのような何かを行うことができ、独自のライン上の変数それぞれの内容のすべての文字を印刷プロセス置換を伴う外部ユーティリティーを使用することができます。

関連する問題