Onderwerp: forward slashes in de tekst tussen [ ] vervangen door spatie

kan ik met sed al dan niet in combinatie met find binnen een tekst document zoeken naar [ tekst met slashes / zoals deze /] tussen rechte haken en dan die slashes vervangen door bv spaties.

het probleem is dat ik met een script bestanden wil opslaan en die slashes in de bestandsnaam gooien roet in het eten.

ik had het in eerste instantie opgelost door overal [  2015/1  ]  te vervangen door [ 2015,1 ] maar helaas gaat dit niet altijd op waardoor mijn script stagneert

2

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

s/\// /g

Of !!!!! s"/" "g

Het is niet per se zo dat je slashes moet gebruiken binnen regexp
Het is op een unix systeem wel heel onhandig hoor... zelfde geld voor spaties... ik doe dat tegesweurdig ook wel maar echt heel fijn is het niet.

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Pascal ik wil slechts één / vervangen en wel die tussen de rechte haken zie voorbeeld regel dus 2015/4/5, eerder deed ik alles met 2015/ vervangen maar dit is dus en slash extra die ik niet zomaar kan definiëren vrees ik.

http://www.recht.nl/vakliteratuur/allet … 15/4-5/;NJ Feitenrechtspraak; Civiele uitspraken [23-01, Nr, 2015/4/5]

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Ik heb de oplossing gevonden

sed -e :1 -e 's@\(\[.*\)\/\(.*\]\)@\1,\2@;t1'

5

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

ik zou die \[.*    wel nog vervangen door iets als \d{4}    of voor mijn part \d\d\d\d
Maar in essentie zit je goed wink
/me likes regexp wink

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

6

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Jeroen, in antwoord op enige vraagtekens van jouw, wat meer detail

\d is wat in reguliere expressies een 'Characer Class' wordt genoemd en betekend simpelweg een decimaal cijfer     het zelfde dus als [0-9]
vervolgens voeg ik er 'quantity specifier' aan toe   {4}   betekend het laatste vier maal herhalen

\d{4} betekend dus dat er vier cijfers moeten staan en is uiteraard het zelfde als \d\d\d\d

Maar \d{2-4} kan ook voorkomen en betekend tenminste twee decimalen en maximaal vier
Terwijl \d{2,4} betekend twee decimalen OF vier decimalen (dus niet drie)

Wat jij doet .* is het volgende:
. betekend een willekeurig karakter
* betekend een willekeurig aantal 
Dus je vraag een willekeurig aantal tekens.... gevolgd door een / en dan weer een willekeurig aantal tekens

Ik weet verder niet precies wat je wilt maar je kan idd met reguliere expressies een heel eind komen. Schrik niet van de syntax, die is voor een leek wellicht wat cryptisch maar dat vind ik van Herbreeuws ook wink

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

7

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Jeroen, in antwoord op enige vraagtekens van jouw, wat meer detail

\d is wat in reguliere expressies een 'Characer Class' wordt genoemd en betekend simpelweg een decimaal cijfer     het zelfde dus als [0-9]
vervolgens voeg ik er 'quantity specifier' aan toe   {4}   betekend het laatste vier maal herhalen

\d{4} betekend dus dat er vier cijfers moeten staan en is uiteraard het zelfde als \d\d\d\d

Maar \d{2-4} kan ook voorkomen en betekend tenminste twee decimalen en maximaal vier
Terwijl \d{2,4} betekend twee decimalen OF vier decimalen (dus niet drie)

Wat jij doet .* is het volgende:
. betekend een willekeurig karakter
* betekend een willekeurig aantal 
Dus je vraag een willekeurig aantal tekens.... gevolgd door een / en dan weer een willekeurig aantal tekens

Ik weet verder niet precies wat je wilt maar je kan idd met reguliere expressies een heel eind komen. Schrik niet van de syntax, die is voor een leek wellicht wat cryptisch maar dat vind ik van Herbreeuws ook wink

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Pascal dank voor uitleg, ik vind het leuk om zinvolle scriptjes te maken die ik ook kan begrijpen, dat komt beetje bij beetje wel goed zo wink.
Ik wil een website opslaan als html bestand, en vervolgens hier gegevens uit strippen om die vervolgens weer op te slaan.

Ik maak hier een ; gescheiden document van en met IFS ';' lees ik dit bestand uit.
Links staat een url met forward slashes die ik dus niet kwijt wil, maar rechts staat de naam zoals ik die pagina wil gaan opslaan.
En je weet een slash in een naam kan niet en dan strand het hele script.

Ik wist me nog eventjes te redden met 2015/ te vervangen door 2015, maar dit zou in 2016 voor problemen kunnen gaan zorgen, maar eerder al liep het spaak aangezien er ook 2015/4/5 varianten zijn.

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Cursusje.... http://www.atcomputing.nl/Training/Publ … puting.pdf

Re: forward slashes in de tekst tussen [ ] vervangen door spatie

Dank Pascal/Peugeot2, ik zal dit als naslag gebruiken.