私はこのようなエコーで表示される変数を持っています
$ echo $var
129 148
出力として129だけを取得する必要があります。129と148をどのように分割しますか?
私はこのようなエコーで表示される変数を持っています
$ echo $var
129 148
出力として129だけを取得する必要があります。129と148をどのように分割しますか?
回答:
jasonwryanの提案に加えて、次を使用できますcut
。
echo $var | cut -d' ' -f1
上記cut
だecho
スペース区切り文字(と出力-d ' '
)と第1のフィールド(出力-f1
)
cut
標準ユーティリティです。あなたのスクリプトはおそらくどこか他の場所にエラーがあります。より一般的には、「機能していない」とは決して言わないでください。実行したコード、実行内容を正確に伝え、エラーメッセージをコピーして貼り付けてください。
これを行うための適切な方法は、bash配列を使用してスペースで文字列を分割することです。括弧を使用するだけで配列を宣言できます:
var="129 148 181"
vars=( $var )
echo "First word of var: '${vars[0]}'"
echo "Second word of var: '${vars[1]}'"
echo "Third word of var: '${vars[2]}'"
echo "Number of words in var: '${#vars[@]}'"
echo $SHELL
表示する必要があります:/bin/bash
または同様。
zsh
;(
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...