Viji
@Viji
Associate DevOps Engineer

Как вытащить подстроку после и включая первую цифру строки?

Привет всем,

обычно все получается но сейчас застопорилось

$sed -n '/(Run\ Finished)/ { :a; n; p; ba; }' output.file | grep "failed\|passed"
    ✖  4 of 4 failed (100%)                     00:06        4        -        4        -        -


достаю следующую строку вверху. Нужно исключить начало строки до первой 4-ки, т.е. 4 of 4 failed (100%) 00:06 4 - 4 - -

Не понимаю почему след sed не сработала?
sed -n '/(Run\ Finished)/ { :a; n; p; ba; }' output.file | grep "failed\|passed" | sed 's/^.*[[:digit:]]\ //'


всем добра,
надеюсь на забанят )
Вадим
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
@2bllk
Решение:
... | sed 's/^[^0-9]\+//'

Почему не работало?

Потому что регулярное выражение с самого начала строки ищет любые символы (.*), после которых должна быть цифра. И этой цифрой оказывается самая последняя цифра, а все что до нее — вполне вписывается в шаблон ".*".
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
брать всю строку до конца, не включая символы, расположенные до первого числа ?
Можно с помощью группы (подстановку группы №1 потом нужно в сед добавить, но я не знаю как)
[^d]*?(\d.*)
https://regex101.com/r/rdEraS/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы