Авторский персонаж в седе - PullRequest
1 голос
/ 06 июля 2011

Я пытаюсь удалить все строки, содержащие символ авторского права (среди прочего, в bash-скрипте), но это не работает вообще:

cat $srcdir/$txtfile |
sed "s/.*©.*/d" |
cat > $tgtdir/$txtfile

ничего не делает. Тем не менее, работает

echo blah © blah | sed "s/.*©.*//g"

в терминале правильно выдает

blah  blah

Я использую SciTE с кодировкой UTF-8, поэтому первый блок кода выше - именно то, что я вижу в редакторе. Любые идеи о том, как я мог бы представить это в редакторе, чтобы sed узнал это?

Ответы [ 3 ]

1 голос
/ 07 июля 2011

Вы можете попробовать использовать восьмеричное представление ©, которое равно 251

$ echo blah © blah | sed 's/\o251/X/'
blah  blah

То есть на "о", а не ноль.

Чтобы удалить строки, содержащие этот символ, используйте

sed '/\o251/d'
1 голос
/ 06 июля 2011

Команда sed выглядит неправильно.Попробуйте

sed '/©/d'

и убедитесь, что соответствующая языковая переменная среды установлена ​​в оболочке, в которой выполняется скрипт.Например, я использую

LC_ALL=en_US.UTF-8
0 голосов
/ 07 июля 2011

попробуйте использовать grep вместо

grep -v '©'
...