В requirements.txt
я хочу заменить ветвь / фиксацию, которая может содержать прямые косые черты, тире и другие потенциально специальные символы, которые могут нуждаться в экранировании:
-e git@github.com:acme-inc/repo0.git@master#egg=repo0
-e git@github.com:acme-inc/repo1.git@master#egg=repo1
-e git@github.com:acme-inc/repo2.git@master#egg=repo2
Примерная цель - заменить содержимое между @ и # произвольной ветвью или коммитом. Например:
-e git@github.com:acme-inc/repo0.git@my/branch/0#egg=repo0
-e git@github.com:acme-inc/repo1.git@1234567#egg=repo1
-e git@github.com:acme-inc/repo2.git@my/branch-2#egg=repo2
Это НЕ производит 0-ую строку желаемой цели:
sed -i 's/(repo0.git@).*(#)/"my/branch/0"/' testfile.txt
Связанные с: