我正在尝试删除包含版权字符的所有行(除其他外,在bash脚本中),但它根本不起作用:
cat $srcdir/$txtfile |
sed "s/.*©.*/d" |
cat > $tgtdir/$txtfile
什么都不做。但是,运行
echo blah © blah | sed "s/.*©.*//g"
终端中的正确产生
blah blah
我正在使用SciTE设置为UTF-8编码,因此上面的第一个代码块正是我在编辑器中看到的。关于如何在编辑器中代表它的任何想法都会识别它?
答案 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 '©'