Страница 1 из 1

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

Добавлено: 2009-09-14 9:57:23
avalon
Здравствуйте.
Существует запись с полями, разделёнными ;
Запись имеет вид 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

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

Добавлено: 2009-09-14 11:22:51
hizel

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

hizel@hzwork:~$ echo 'xxx;xxx;xxx' | egrep '.*;.*;.*;.*' && echo 'yes'
hizel@hzwork:~$ echo 'xxx;xxx;xxx;xxx' | egrep '.*;.*;.*;.*' && echo 'yes'
xxx;xxx;xxx;xxx
yes
гм :-)

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

Добавлено: 2009-09-14 11:26:26
avalon
Спасибо за ещё один вариант решения. :smile: