У меня есть файл, ABDC.DELTA00.TS.D20161022.TS_BAR99.DAT.DOCC
.Извлечение строки между двумя строками
Я хочу вырезать текст между двумя строками: первые TS
и DOCC
. Я попытался
efvar4=$(echo $filename | sed -n "s/.*TS//;s/DOCC.*//p")
в результате _BAR99.DAT
– соответствия в имени файла второй TS
.
Желаемый результат: .TS.D20161022.TS_BAR99.DAT.
Как изменить мой SED команды, чтобы достичь желаемого результата?
regexes are greedy. поэтому '. * TS' будет соответствовать как можно большей части строки, что означает, что она будет соответствовать LAST' TS' в строке. –
Спасибо Marc B, есть способ добиться желаемого результата –
'(TS. * \. DOCC)' вместо? что заставит его максимально соответствовать между TS/DOCC, захватив «вторую» часть в качестве части этого. –