borzole Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 Nie mogę sobie poradzić z pojedynczym cudzysłowem w sed. Wiki formatuje '''text''' jako bold. Teoretycznie przeniesienie tego do konsoli powinno być jakoś tak: s/\(\'\'\'\)\(.*\)\(\'\'\'\)/\\e[1;38m\2\\e[0m/g ale nie działa. Również podwójne i potrójne "\" nie działają. Zawsze błąd składni. Działająca część wygląda tak: cwiki.sh Nawet jak wydzieliłem osobno skrypt sed: cwiki.sed uruchamiany tym skryptem: #!/bin/bash DOMAIN=${1-http://wiki.fedora.pl} PAGE=${2-Typowe_problemy} URL="${DOMAIN}/index.php?title=${PAGE}&action=raw&ctype=text/css" echo -e "$( curl -s $URL | cwiki.sed )" to problem pozostał, co jest trochę dziwne. [EDIT] Okazuje się, że po wydzieleniu komend sed do osobnego pliku przestało działać znacznie więcej. Teraz to już zupełnie nie wiem o co chodzi. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
jjj Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 Dlaczego escapujesz \' ? bash nie będzie interpretował ani pojedynczego ' wpisanego wewnątrz "..." ani niczego, co siedzi w plikowym skrypcie dla sed-a. Z kolei dla powłoki ograniczniki '...' są silniejsze niż "..." w tym sensie, że wewnątrz nich ani interpretacja, ani rozwijanie sekwencji escape się nie odbywa. Być może dowodzi to nieuctwa, ale nie wiem, czym jest \' w wyrażeniach regularnych. Jednak czymś jest z pewnością; w próbach grep i sed dopasowują do niego pusty łańcuch między ostatnim znakiem w wierszu a $. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Styczeń 20, 2010 Autor Zgłoszenie Share Napisano Styczeń 20, 2010 Okazało się, że zamiast kombinować, wystarczy zapisać upierdliwy znaczek w ASCII Czyli, żeby zamienić '''text''' na bold w zapisie bash: # ASCII w HEX dla x27 -- bold s/\(\x27\{3\}\)\(.*\)\(\x27\{3\}\)/\\e[1;38m\2\\e[0m/g prawda, że proste i czytelne Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się