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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.