Przypuśćmy, że w baaardzo dużym pliku tekstowym posiadamy kod HTML który musimy prze-formatować. I np. posiada on składnię dotyczącą opisu atrybutów w tagach z bazy danych – zamiast:
1 |
<span style="font-size: small;"> |
Są wystąpienia typu:
1 |
<span style=\"font-size: small;\"> |
Czyli chcemy pozbyć się tych ukośników przed apostrofami. Jak to zrobić?
Można po prostu wykorzystać konsolę. Chodzi tutaj o sposób poruszany w artykule:
Problem z importem pliku SQL w MySQL – Incorrect datetime value: 0000-00-00 00:00:00
Czyli użycie komendy:
1 |
sed -ie 's/\"/"/g' jakis-duzy-plik-z-kodem-html.txt |
Jednak to nie zadziała..
Aby w/w komenda była pomocna należy uwolnić apostrof, czyli „dołożyć” kolejny ukośnik przed naszym ukośnikiem:
1 |
sed -ie 's/\\"/"/g' jakis-duzy-plik-z-kodem-html.txt |
Ma to związek z REGEX (wyrażenia regularne) użytym w tej komendzie. Jeden apostrof po prostu uwalnia cudzysłów, jeśli chcemy uwolnić też ukośnik (który sam w sobie służy do „uwalniania”) – musimy użyć go podwójnie.
REGEX’y to niezwykle potężne narzędzie i dedykujemy dla tego zagadnienia osobną kategorię na naszym serwisie: https://linuxporady.pl/category/wyrazenia-regularne/