Работа со строками (Решено)

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
avalon
рядовой
Сообщения: 41
Зарегистрирован: 2008-01-24 18:09:47
Откуда: Украина

Работа со строками (Решено)

Непрочитанное сообщение avalon » 2009-09-14 9:57:23

Здравствуйте.
Существует запись с полями, разделёнными ;
Запись имеет вид xxxx;xxxxx;xxxxx
необходимо узнать, существует ли четвёртое поле или нет. Как сделать через иф знаю, хочу получить решение в одну строку типа

Код: Выделить всё

echo xxxx\;xxxxx\;xxxx|cut -f 4 -d \;|test -n||echo yes
или такого вида приблизительно

Код: Выделить всё

echo xxxx\;xxxxx\;xxxx|awk -F\; '{print NF-1}'|test -gt 2&& echo yes
Но что то тест не так отрабатывает. К нему не попадает параметр через конвейер. Что делаю не так?

Торможу.... :st:
Всё просто

Код: Выделить всё

test `echo xxxx\;xxxx\;xxxx|awk -F\; '{print NF-1}'` -gt 2&& echo yes
или если идеология не позволяет пользоваться awk то можно cut а потом wc -m
Последний раз редактировалось avalon 2009-09-14 11:24:35, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Работа со строками

Непрочитанное сообщение hizel » 2009-09-14 11:22:51

Код: Выделить всё

hizel@hzwork:~$ echo 'xxx;xxx;xxx' | egrep '.*;.*;.*;.*' && echo 'yes'
hizel@hzwork:~$ echo 'xxx;xxx;xxx;xxx' | egrep '.*;.*;.*;.*' && echo 'yes'
xxx;xxx;xxx;xxx
yes
гм :-)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

avalon
рядовой
Сообщения: 41
Зарегистрирован: 2008-01-24 18:09:47
Откуда: Украина

Re: Работа со строками (Решено)

Непрочитанное сообщение avalon » 2009-09-14 11:26:26

Спасибо за ещё один вариант решения. :smile: