sed中的版权特征

时间:2011-07-06 10:20:31

标签: utf-8 sed character

我正在尝试删除包含版权字符的所有行(除其他外,在bash脚本中),但它根本不起作用:

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

什么都不做。但是,运行

echo blah © blah | sed "s/.*©.*//g"
终端中的

正确产生

blah  blah

我正在使用SciTE设置为UTF-8编码,因此上面的第一个代码块正是我在编辑器中看到的。关于如何在编辑器中代表它的任何想法都会识别它?

3 个答案:

答案 0 :(得分:1)

sed命令看起来不正确。尝试

sed '/©/d'

并检查在运行脚本的shell中设置的相应语言环境变量。例如,我使用

LC_ALL=en_US.UTF-8

答案 1 :(得分:1)

您可以尝试使用©的八进制表示251

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

那是“哦”而不是零。

要删除包含该字符的行,请使用

sed '/\o251/d'

答案 2 :(得分:0)

尝试使用grep代替

grep -v '©'