Почему этот путь только иногда не является репозиторием git?

Чистый раствор sedбез трубопроводов иtac

В таком случае линейный -за -линейный подход из sedне помогает. Лучше обработать весь буфер сразу, так как вариант -zGNU sedделает (вы, кажется, используете linux и GNU sed, переносную замену см. в этом Q&A).

Теперь вы можете воспользоваться жадным характером.*:Шаблон .*apple1будет соответствовать всему, включая последнее вхождение apple1, потому что все остальные вхождения поглощаются .*.

Затем просто добавьте следующие поля(\s+для разделителя столбцов, [0-9]+для второго столбца и еще один \s+, все расширенные регулярные выражения GNU )и окружите их (), чтобы вы могли использовать их повторно. в замене как \1. Затем добавьте третий столбец за пределами (), чтобы заменить его, и получится

sed -zE 's/(.*\napple1\s+[0-9]+\s+)[0-9]+/\14444444/'

Вот именно.

Примечание для пользователей, не -GNU sed:Портативное решение было бы менее удобным:

sed -E 'H;1h;$!d;x;s/(.*\napple1[[:space:]]+[0-9]+[[:space:]]+)[0-9]+/\14444444/'

1
02.09.2021, 08:50
0 ответов

Теги

Похожие вопросы