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


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

sdio ★★★★★
()
Ответ на: комментарий от phoenix

Спасибо!

sed рулит

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

s0ldat
() автор топика
Ответ на: комментарий от s0ldat

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

maloi ★★★★★
()
Ответ на: комментарий от s0ldat

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

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

true_admin ★★★★★
()
Ответ на: комментарий от sdio

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

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

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

s0ldat
() автор топика
Ответ на: комментарий от s0ldat

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

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

sdio ★★★★★
()
Ответ на: комментарий от sdio

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

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

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

s0ldat
() автор топика
Ответ на: комментарий от sdio

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

Нет, чтобы подсказать как и потом ненавязчиво направить в 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 ★★★★★
()
Ответ на: комментарий от Slavaz

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

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