2014-01-13 13 views
5

OSXの端末で文字列の長さを取得することは可能ですか?例:OSX端末の文字列の長さ

$ echo "foo".length 

それとも

$ echo (cat file.txt).length 
+0

'echo $ {" foo "}'またはおそらく 'echo" foo "| wc -c' – gtgaxiola

+0

'echo $ {" foo "}'は 'zsh:bad substitution'と' echo "foo"を返しました。 wc -c'は '4'を返しました! –

+0

興味深い....エコー "foo" | wc -cはLinux上で動作します(現時点でテストする端末はありません) – gtgaxiola

答えて

11
echo "foo" | wc -c 

これは、stdinの文字数をカウントします。末尾にechoが改行を追加するので、これは4を返すことに注意してください。追加された改行を避けるには、printfまたはecho -nを使用してください。

printf "foo" | wc -c 
+0

'printf" foo "| wc -c'は動作しますが、なぜレスポンスに数字だけでなく空白(2つのタブのように見えます)があるのか​​分かりません。 –

+0

それは変です。私のUbuntuシステムでは、 'wc -c'は単に' 3'を出力します。余分な空白はありません。 –

+0

私はOSXの楽しい時間の愛の嵐です –

1

これを試してみてください:

var=hello; echo ${#var} 
+0

どうすればいいですか? varを割り当てないで? –

0

exprの長さは

hello="world" 
expr length $hello 
5 

か、単に

を使用することができます0
expr length "hello" 
5 
+0

もう一度、varを割り当てることなくこれを行う方法はありませんか? –

0

推奨解決策は、実際の長さに1を加えます。私の意見では、これはよりよい解決策です。

添加し、このあなたの.zshrcにまたは.bash_profileの

lenFunc() { 
    echo ${#1} 
} 

alias len=lenFunc 

len foo 
// output 3 
0

OS Xターミナルから、あなたもそうするようにスウィフトREPLを使用することができます。

user_name$ swift 
Welcome to Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42). 
Type :help for assistance. 
    1> print("foo".characters.count) 
3 
    2> 

スウィフト4ではprint("foo".count)

関連する問題