Форум — General Вопрос про grep. grep 0 1 Доброго всем. есть такое: grep -o -E '\}\{2\:.{20}' file Мне надо вывести не 20 символов, а символы с 16-го по 20-ый. Спасибо. Ссылка
Ответ на: комментарий от Anon 27.09.2013 05:49:59 +00:00 Всё отработало, спасибо. Только я не понял, зачем экранирование нужно ? dada ★★★★★ (27.09.2013 05:53:42 +00:00) автор топика Показать ответ Ссылка
Ответ на: комментарий от dada 27.09.2013 05:53:42 +00:00 А ты попробуй без экранирования. В баше не сработает. Anon (27.09.2013 05:58:14 +00:00) Показать ответ Ссылка
Ответ на: комментарий от Anon 27.09.2013 05:58:14 +00:00 Я попробовал, не работает. Просто я думал, что \{ примится как символ, а в моём случае это как раз таки не надо. dada ★★★★★ (27.09.2013 05:59:52 +00:00) автор топика Ссылка
Я за coreutils, они для новичка проще.grep -o -E '\}\{2\:.{20}' file | cut -c 16-20 Bagrov ★★★★★ (27.09.2013 06:19:55 +00:00) Показать ответы Ссылка
Ответ на: комментарий от Bagrov 27.09.2013 06:19:55 +00:00 Да хоть awk! Anon (27.09.2013 06:21:09 +00:00) Ссылка
Ответ на: комментарий от Bagrov 27.09.2013 06:19:55 +00:00 Ещё вопрос, как взять всё от тега a1, который на 5 строке до тега а2, который на 7-ой строке ? cast Anon dada ★★★★★ (27.09.2013 06:35:46 +00:00) автор топика Последнее исправление: dada 27.09.2013 06:36:04 +00:00 (всего исправлений: 1) Показать ответ Ссылка
Ответ на: комментарий от dada 27.09.2013 06:35:46 +00:00 echo -e "start<a>hello\nmore words\n<b>aa</b>\nstop</a>more\n text"| sed -e '/<a>/,/<\/a>/!d' -e 's/.*\(<a>.*\)/\1/' -e 's/\(.*<\/a>\).*/\1/' <a>hello more words <b>aa</b> stop</a> Да, кастование в редактировании не работает! Anon (27.09.2013 06:52:06 +00:00) Показать ответ Ссылка
Ответ на: комментарий от Anon 27.09.2013 06:52:06 +00:00 эмм, я кажись не так объяснил. есть строки типа::50:stroka1stroka1 stroka2stroka2stroka2 :70:fignyafignya Надо вытащить всё между :50: и :70: dada ★★★★★ (27.09.2013 07:03:55 +00:00) автор топика Показать ответ Ссылка
Ответ на: комментарий от dada 27.09.2013 07:03:55 +00:00 Сложно что ли поменять немного? echo -e ":50:stroka1stroka1\nstroka2stroka2stroka2\n:70:fignyafignya" | sed -e '/:50:/,/:70:/!d' -e 's/.*:50:\(.*\)/\1/' -e 's/\(.*\):70:.*/\1/' stroka1stroka1 stroka2stroka2stroka2 Anon (27.09.2013 07:06:31 +00:00) Показать ответ Ссылка
Ответ на: комментарий от Anon 27.09.2013 07:06:31 +00:00 Спасибо тебе большое добрый дядька =) Будешь в наших краях, с меня вкусное пиво. dada ★★★★★ (27.09.2013 07:42:11 +00:00) автор топика Показать ответ Ссылка
Ответ на: комментарий от dada 27.09.2013 07:42:11 +00:00 Вряд ли. Уж лучше вы к нам ☺ Anon (27.09.2013 07:43:01 +00:00) Показать ответ Ссылка
Ответ на: комментарий от Anon 27.09.2013 07:43:01 +00:00 Ты в Баку был ? Тут есть на что посмотреть, где посидеть, вкусно покушать и хорошенько выпить. =) dada ★★★★★ (27.09.2013 08:00:55 +00:00) автор топика Показать ответ Ссылка
Ответ на: комментарий от dada 27.09.2013 08:00:55 +00:00 Не был. Может быть, когда-нибудь да съезжу. Боязно как-то через Чечню переться. Anon (27.09.2013 08:05:02 +00:00) Показать ответ Ссылка
Ответ на: комментарий от Anon 27.09.2013 08:05:02 +00:00 Ещё вопрос: grep -EA1 \:50 file | grep -v «^\:» Как это дело сделать без пайпа ? Так не работает: grep -E \:50 -A1 -v «^\:» file Думает, что после -v это файл. Bagrov dada ★★★★★ (02.10.2013 05:54:44 +00:00) автор топика Последнее исправление: dada 02.10.2013 05:55:10 +00:00 (всего исправлений: 1) Ссылка