2016-03-22 19 views
1

Die folgende Sed Ausdruck ersetzen soll Latex Quellcode bedienen und ersetzen citet mit citep:Sed regex mehrere Vorkommen

sed -i -e 's/\\citet/\\citep/' 

Allerdings scheint es, dass, wenn citet zweimal hintereinander erscheint

\citet{bichot2011graph} \citet{DBLP:journals/corr/BulucMSSS13} 

es nur das erste Vorkommen ersetzt und verwandelt es in:

\citep{bichot2011graph} \citet{DBLP:journals/corr/BulucMSSS13} 

Wo ist der Fehler?

Antwort

1

Sie müssen die globale Flag g verwenden: für mehr Details

sed -i -e 's/\\citet/\\citep/g' 

Siehe this Referenz.

g - Übernehmen Sie den Ersatz für alle Übereinstimmungen mit der Regexp, nicht nur die zuerst.