LINUX.ORG.RU

Sed/Awk/etc... вопрос


0

0

есть строка, содержащая дату в формате YYYY-MM-DD (регулярное например выражение /20[0-1][0-9]-[01][0-9]-[0-3][0-9]/), но в каком месте строки эта дата находится, заведомо не известно

как изъять эту дату из строки, чтобы на выходе была только дата?

Например из строки:
"это произвольное количество символов 2008-08-20 опять произвольное количество символов"

получить на выход:

2008-08-20

Re: Sed/Awk/etc... вопрос

проще всего
grep -o '20[0-1][0-9]-[01][0-9]-[0-3][0-9]'

sdio ★★★★★ ()
Ответ на: Re: Sed/Awk/etc... вопрос от phoenix

Re: Sed/Awk/etc... вопрос

Спасибо!

sed рулит

Кстати "grep -o" на первый взгляд лучший способ, но у grep я не нашел возвожности получать контент для парсинга из stdin (FreeBSD grep), может плохо смотрел.

s0ldat ()
Ответ на: Re: Sed/Awk/etc... вопрос от s0ldat

Re: Sed/Awk/etc... вопрос

стоит ещё отметить, что название grep пошло из команды на ed g/REgular/p

maloi ★★★★★ ()
Ответ на: Re: Sed/Awk/etc... вопрос от s0ldat

Re: Sed/Awk/etc... вопрос

> у grep я не нашел возвожности получать контент для парсинга из stdin

cat <file> | grep <pattern> решит проблему

true_admin ★★★★★ ()
Ответ на: Re: Sed/Awk/etc... вопрос от sdio

Re: Sed/Awk/etc... вопрос

зачем сразу смеяться?
в моем случае "строка" - это переменная bash-скрипта в цикле, которая свое значение берет от выполнения "ls", то есть это имя файла. Таким образом, если grep не сумеет пропарсить зхначение этой переменной (то есть попросту имя файла), то без создания временных файлов не обойтись.

В данном случае решение с sed как раз то чнто нужно.

Но если grep таки пропарсить данные с stdin может, скажите как :-)

s0ldat ()
Ответ на: Re: Sed/Awk/etc... вопрос от s0ldat

Re: Sed/Awk/etc... вопрос

>Но если grep таки пропарсить данные с stdin может, скажите как :-)

Это священная тайна. Секта *nix гуру свято хранит её.

sdio ★★★★★ ()
Ответ на: Re: Sed/Awk/etc... вопрос от sdio

Re: Sed/Awk/etc... вопрос

упс... я погорячился

наверное очень устал вчера когда скрипт писал

надо ж так буксовать!

s0ldat ()
Ответ на: Re: Sed/Awk/etc... вопрос от sdio

Re: Sed/Awk/etc... вопрос

Издеватели вы все тут :)

Нет, чтобы подсказать как и потом ненавязчиво направить в RTFuckingM.

s0ldat:

echo $VARIABLE | grep ...

http://www.opennet.ru/docs/HOWTO/Bash-Prompt-HOWTO/
и до кучи http://www.opennet.ru/base/dev/linux_shells.txt.html, раздел "4. Использование каналов"

Slavaz ★★★★★ ()
Ответ на: Re: Sed/Awk/etc... вопрос от Slavaz

Re: Sed/Awk/etc... вопрос

Поэтому просто посмеялись, а могли бы и послать ... в гугель

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