Dobrov |
|
Темы:
15
Сообщения:
142
Участник с: 03 ноября 2017
|
Задача: печать текста между тэгами, исключая вторые тэги и сами тэги, т.е. без строк # BEGIN<my tag>, # END<my tag>, Random Tag match…
P.S. файл-по умолчанию берётся из скрипта, так сделано у меня в run: http://victor-dobrov.narod.ru/share/unix-helper.7z run служит для выполнения многих действий, для справки запустите его без параметров. (справка создаётся динамически) |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Не совсем понял смысл, но, имхо, это проще сделать используя sed - удалить всё, что левее/правее определённого слова, включая само слово PS - слово должно быть уникальным (но это похоже выполняется), а вот насчет 2-го вхождения не понял ... EDIT 1 - и лучше привести образец строки: что имеется и что должно остаться
Ошибки не исчезают с опытом - они просто умнеют
|
eikoninaru |
|
Темы:
2
Сообщения:
115
Участник с: 18 декабря 2013
|
DobrovТоже не понятно, откуда авк будет дергать? Из run? опробуйте добавить в качестве разделителя брекеты тегов
|
Dobrov |
|
Темы:
15
Сообщения:
142
Участник с: 03 ноября 2017
|
Должно остаться только Tag text (в скрипте run это работает, но дублирующих шаблонов нет, а они могут быть…) Задача: извлечь из тела скрипта $0 текст между двумя шаблонами, исключая сами шаблоны и используя только первое вхождение: sed также как awk захватывает всё, т.е. печатает и повторное вхождение шаблонов: строку Random Tag match…sed -n '/^# BEGIN<my tag.*/,/^# END<my tag.*/p' $0| sed '1d;$d' |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Dobrov
Образец нам так и не привели ... и я так и не понял ... тогда будем действовать в лоб, то есть возьмем этот пример за образец. И так имеем cat ~/test sed '/# BEGIN<my tag>/d;q' ~/test
Ошибки не исчезают с опытом - они просто умнеют
|
Dobrov |
|
Темы:
15
Сообщения:
142
Участник с: 03 ноября 2017
|
vasekВаш вариант не работает, sed печатает только первую строку, а нужен только текст между двумя шаблонами, как это сделано в скрипте run: http://victor-dobrov.narod.ru/share/unix-helper.7z
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
DobrovА это потому, что нужно было привести пример и подробнее описать (не зря просил) … какой был приведен пример, тот и был использован … Но похорошему, имхо, лучше написать скрипт, в котором построчно читать нужный файл и выполнять нужный алгоритм - это будет понятнее.
Ошибки не исчезают с опытом - они просто умнеют
|
indeviral |
|
Темы:
38
Сообщения:
3165
Участник с: 10 августа 2013
|
))
Ошибки в тексте-неповторимый стиль автора©
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
indeviral, Dobrov отсылает к своему файлу (лично я не любитель что то скачивать и смотреть) и не хочет пояснить ... но, насколько я понимаю, местоположение строки переменно (меняется в зависимости от соотвествующего тэга/запроса), и простой командой вряд ли обойдешься. Чтобы построить алгоритм необходимо четко представлять всю эту кухню, а так одни гадания .... но могу и ошибаться.
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Навскидку, самое простое, когда между нужными тэгами 1 строка - читаем построчно файл, включаем счетчик, попался 1-ый нужный тэг BEGIN, вычисляем номер следующей нужной строки ... и выводим эту строку ... и дальше не читаем. Если строк несколько, то нужно определять еще и номер строки, имеюшей тэг END ...
Ошибки не исчезают с опытом - они просто умнеют
|