LINUX.ORG.RU

Re: [bash] Как обрезать строку до первого разделителя?

Но учитывая, что башизмы считаются плохим тоном, то лучше резать седом: str="`echo $str | sed 's/^[^:]+//'`"

Подразумевается, что разделитель ":".

gaa ★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

> 1. echo "$SUBJECT" | grep bash

Ты в первый раз встречаешь, что шелл как таковой "башем" называют?

> 2. Чего сразу 'sed'? cut не хватает?


Ага, хватает.

gaa ★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

awk уже не в моде?

Komintern ★★★★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

echo bash rules | (read i j; echo $i)

Если, конечно, символ-разделитель -- это что-то из $IFS

lodin ★★★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

man cut ?

SI ★★☆☆ ()

Re: [bash] Как обрезать строку до первого разделителя?

>> str="`echo "$str" | sed -r 's/^[^:]+//'`", если быть более точным
> Нет, это ещё хуже :(


А что тебе не нравится, кроме того, что тут я иду через (неразборчиво) и не использую cut?

gaa ★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

> Что будет если str='"abc"' или str="abc<перевод строки>ABC"

Будет (неразборчиво). Ну а что ты хотел в условиях дефицита входных данных?

gaa ★★ ()

Re: [bash] Как обрезать строку до первого разделителя?

> Будет (неразборчиво). Ну а что ты хотел в условиях дефицита входных данных?

И это неправильный ответ... Ну зачем ты так быстро сдался? ;)

Вот правильный ответ с sed и echo, но только для bash, может кто есть умудрённее меня в шелле и поправит: str=$(echo " $str"|sed 's/^.\([^:]\+:\|\)//')

gena2x ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.