Ik wil mbv sed de volgende verandering in een lange file aanbrengen:
.\n\foo{bar} moet \foo{bar}.\n worden.
Ik probeer het volgende:
Met de eerste opdracht pIak ik de regel volgend op een regel die met een punt eindigt aan de voorgaande regel vast.
Daarna probeer ik .\n\begin{<aantal willekeurige karakters>} te veranderen in "bla". Hierbij escape ik de . en de \. Dit werkt niet. Weet iemand waarom?
Verder wil ik hierna "bla" vervangen door een string die onder andere de karakters tussen de accolades bevat. Ik heb lopen experimenteren met \1, maar dat heeft niets opgeleverd.
Hoe moet ik dit aanpakken?
.\n\foo{bar} moet \foo{bar}.\n worden.
Ik probeer het volgende:
code:
1
| sed -e "/\.$/N" -e "s/\.\n\\foo{.*}/bla/" |
Met de eerste opdracht pIak ik de regel volgend op een regel die met een punt eindigt aan de voorgaande regel vast.
Daarna probeer ik .\n\begin{<aantal willekeurige karakters>} te veranderen in "bla". Hierbij escape ik de . en de \. Dit werkt niet. Weet iemand waarom?
Verder wil ik hierna "bla" vervangen door een string die onder andere de karakters tussen de accolades bevat. Ik heb lopen experimenteren met \1, maar dat heeft niets opgeleverd.
Hoe moet ik dit aanpakken?
edit:
Ik heb inmiddels gezien dat ik voor foo 3 \ tekens moet zetten. Waarom?
Ik heb inmiddels gezien dat ik voor foo 3 \ tekens moet zetten. Waarom?
[ Voor 11% gewijzigd door Sir Isaac op 02-06-2004 23:52 ]