Рейтинг:0

поведение sed в зависимости от файла, к которому я его применяю

флаг jp

У меня есть один файл с именем test1.xml со следующим содержимым:

Привет, как поживаешь?

И я пытаюсь применить следующий поиск и замену sed:

sed -i 's/Hello //g' test1.xml

И файл остается прежним!!!

Я копирую содержимое того же файла в новый файл, который я называю test2.xml, применяю тот же sed, и он работает, Hello удаляется. Есть идеи?

У меня OSX BigSur 11.5.2.

Вот два файла: test1.xml: https://we.tl/t-tX1SMdYQ0A test2.xml: https://we.tl/t-AULhYhZ2K9

При проверке обоих файлов похоже, что они разные:

од -c test1.xml 
0000000 376 377 \0 Н \0 д \0 л \0 л \0 о \0 \0 ч
0000020 \0 о \0 ш \0 \0 а \0 г \0 е \0 \0 у
0000040 \0 о \0 и \0 \0 д \0 о \0 я \0 п \0 г
0000060 \0 ?                                                        
0000062


од -c test2.xml
0000000 Х е л л о х о в а р е й о
0000020 ты делаешь ?                                
0000030
Joseph Quinsey avatar
флаг ng
См. [Почему sed не выводит текст?](//apple.stackexchange.com/q/320501).
Joseph Quinsey avatar
флаг ng
И, возможно, см. [Есть ли альтернатива sed, поддерживающая юникод?](//unix.stackexchange.com/q/196780).
флаг ph
Кроме того, версия `sed` для macOS (/BSD) анализирует параметр `-i` иначе, чем версия для Linux (/GNU), поэтому вам нужно использовать `sed -i '' ...`.См. [этот вопрос] (https://unix.stackexchange.com/questions/92895/how-can-i-achieve-portability-with-sed-i-in-place-editing) и [этот вопрос в stackoverflow]( https://stackoverflow.com/questions/5694228/sed-in-place-flag-that-works-both-on-mac-bsd-and-linux).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.