The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Как в sh определить число символов ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Как в sh определить число символов ..."  +/
Сообщение от auto_tips on 04-Апр-07, 18:08 
В FreeBSD sh и bash:
test="string"
len=${#test} ##Длина строки test
char1='t' ##Первый символ для поиска
pos1='echo $test | awk -vs=${char1} '{print index($0,s);}''  ##pos1=2 - найден


URL:
Обсуждается: http://www.opennet.ru/tips/info/282.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как в sh определить число символов в строке"  +/
Сообщение от merzod email on 04-Апр-07, 18:08 
А вот давайте посмотрим так: запустим тогда выше описанный скриптик в SH, а не BASH!

#!/bin/sh
test="string"
len=${#test}

и что же он там ответит? Кто угадает - поставлю пятерочку... правильно, ответит он нам:

./1.sh: bad substitution

поэтому, Уважаемый надо либо темочку подправить на BASH или дописать сюда следущее:

len=`echo $test | wc -m`

но будте бдительны!!! от $len надо еше единичку отнять.

real_len=$[len-1]

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Как в sh определить число символов в строке"  +/
Сообщение от Saveliy (??) on 07-Дек-13, 03:59 
Вот вы Васи... Работает len=${#test} прекрасно в sh!
Вот такая команда не работает len=`expr length $STR`, а ${#test} изумительно работает!
Вы как проверяли? Может сами оболочку перепутали?
Тест провожу в sh (по умолчанию на фряхе 9.1) по рутом. Может не работает из под обычного юзера, но сомневаюсь в этом и не хочу даже проверять.
Ваш пример тоже имеет право на жизнь для портабельности, только с параметром -n к echo, как вам подсказали позже.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Как в sh определить число символов в строке"  +/
Сообщение от merzod email on 04-Апр-07, 18:30 
Круче:

real_len=`expr $len - 1`

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Как в sh определить число символов в строке"  +/
Сообщение от nameless on 18-Фев-10, 12:45 
printf $test | wc -m
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Как в sh определить число символов в строке"  +/
Сообщение от Николай email(??) on 13-Июл-11, 14:30 
echo text | wc -m
Обманывает - выводит на один символ больше

Вот вывод моего bash:
~$ echo text | wc -m
5

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Как в sh определить число символов в строке"  +/
Сообщение от mmihail email on 16-Дек-11, 18:39 
не надо ничего отнимать
echo надо знать команду как следует

echo -n text | wc -m

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру