Возможно ли, чтобы терминал OSX мог получить длину строки? Например:OSX terminal string length
$ echo "foo".length
Или
$ echo (cat file.txt).length
Возможно ли, чтобы терминал OSX мог получить длину строки? Например:OSX terminal string length
$ echo "foo".length
Или
$ echo (cat file.txt).length
echo "foo" | wc -c
Подсчитывает количество символов на stdin. Обратите внимание, что это вернет 4
, так как echo
добавляет новую строку в конце. Используйте printf
или echo -n
, чтобы избежать добавления новой строки.
printf "foo" | wc -c
'printf" foo "| wc -c' действительно работает, но я не уверен, почему ответ имеет пробел (выглядит как две вкладки, а затем число), а не только номер. –
Это странно. В моей системе Ubuntu 'wc -c' просто печатает' 3', никаких лишних пробелов. –
Я нахожусь в веселой шторме любви, то есть OSX –
Try с этим:
var=hello; echo ${#var}
Как я могу это сделать без присвоения var? –
длина выраж можно использовать
hello="world"
expr length $hello
5
или просто
expr length "hello"
5
Опять же, нет ли способа сделать это без назначения var? –
Предлагаемое решение добавляет 1 к фактической длине. На мой взгляд, это лучшее решение.
Добавлено это ваш .zshrc или .bash_profile
lenFunc() {
echo ${#1}
}
alias len=lenFunc
Тогда
len foo
// output 3
От OS X терминала, вы можете также использовать Swift 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>
В Swift 4 это будет print("foo".count)
'echo $ {" foo "}' или, возможно, 'echo" foo "| wc -c' – gtgaxiola
Итак 'echo $ {" foo "}' return 'zsh: bad substitution' и' echo "foo" | wc -c' вернулся '4'! –
Интересно .... echo "foo" | wc -c работает в Linux (на данный момент нет тестового терминала) – gtgaxiola