Tak więc aktualne pytanie brzmi - czy ktoś ma pomysł na usunięcie M-BM-
postaci specjalnej bez ryzyka utraty innych postaci?
Mam ciąg tekstu:
" . . ."
to jest
space dot space dot space dot
Próbuję zastąpić wszystkie wystąpienia tego ciągu w pliku tekstowym na
"..."
to jest
dot dot dot
Próbowałem zrobić z sed:
sed -r 's:\s\.\s\.\s\.:...:g' -i sed-dots
Niestety nie zmienia to nawet pliku wejściowego. Plik: https://www.dropbox.com/s/46zmiruy3ln85a1/sed-dots
Kiedy próbuję zamienić ten sam ciąg w edytorze tekstu (używam geany), zostaje on znaleziony i zastąpiony poprawnie.
Jedynym powodem, dla którego mogę wymyślić, jest to, że niektóre (lub wszystkie) z tych pól nie są tak naprawdę spacjami, ale jakąś specjalną postacią.
Czy ktoś ma pomysł, jak znaleźć i zamienić ten ciąg na sed (lub inne narzędzie wiersza poleceń)? Przetestuj swój pomysł na moim pliku, ponieważ problem nie jest tak oczywisty, jak mógłby się wydawać - dlatego o to zapytałem.
Po użyciu cat -A
mojego pliku wydaje się problem, że te spacje nie są spacjami, ale M-BM-
znakiem specjalnym. Używanie dowolnego symbolu .
sugerowanego do wyszukiwania nie jest dobrym pomysłem, ponieważ istnieje ryzyko, że niektóre inne znaki zostaną usunięte.
echo
zalecasz używanie zamiast catowania pliku, przynajmniej jeśli cat catuje plik, wiesz, że powłoka niczego nie interpretuje, ani echo.