Получение различий в файлах между конкретными версиями / ветвями

предварительное имя ... переименовать с помощью выражений Perl. Следующая команда берет список файлов (KLL *) и для каждого из них захватывает все имя KLL плюс три числа ( KLL\d {3}) ) и сохраняет их в специальную переменную $1 . s в начале выражения означает «заменить» то, что находится между первыми двумя /, на то, что находится между 2-м набором, которое является полным именем файла в $1 и добавить к нему .fastq .

prename 's/(KLL\d{3})/$1.fastq/' KLL*
-121--95542-

Это комбинация % {name}.% {arch} . Если это то же самое, то эта модернизация. Если он отличается, то это другая установка.

Т.е. можно установить cAPI-3.1.6-x86 _ 64 и cAPI-3.1.6-i386 одновременно. Но вы не можете иметь cAPI-3.1.6-x86 _ 64 и cAPI-2.1.7-x86 _ 64 в одной системе (если вы не делаете действительно грязных трюков).

-121--138921-

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

regex="ss"
string="blossom"
echo $string | sed -n "s/^.*\($regex\).*$/\1/p"

-n говорит sed не печатать строку, то p в конце команды s/сообщает sed печатать строку, с заменами, если она соответствует чему-либо.

1
08.06.2018, 01:11
1 ответ

Я думаю, вы можете комбинировать git blameи git merge-base, чтобы получить нужную информацию:

git blame -n $(git merge-base A B).. -- file | grep -v "^^" | grep "$PATTERN"

Это находит общего предка между A и B, затем запускает git blameна file, игнорируя все, что старше общего предка (нотация ..указывает git blameпросматривать ревизии, начинающиеся с предка и заканчивая текущей головкой ). -nдобавляет номера строк в вывод. Затем grep -v "^^"удаляет все строки, которые не изменились со времени общего предка, и, наконец, grep "$PATTERN"ищет шаблон только среди строк, которые изменились. Поскольку git blameв обратном режиме без -показывает только те строки, которые в данный момент находятся в файле, результаты будут включать только добавленные или измененные строки, что точно эквивалентно вашему фильтру ^\+.

2
27.01.2020, 23:32

Теги

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