如何删除一组特殊字符(见附件)

时间:2011-07-19 04:41:05

标签: sed awk grep

这个字符很特别我不能放入代码,因为论坛不支持它。以下是代码格式:[32; 1m

立方体(第一个字符)是文件中左侧的箭头(参见上面的链接)。 这是角色的外观图。查看文件:http://www.dodaj.rs/f/2u/ar/3B1Q7J4Q/sample.jpg 这里是文件的附件,它包含我要删除的内容:http://hotfile.com/dl/124448134/58e08a0/File.log.html 这是完整的文件:

[32;1m/var/log/daemon.log file is rotated1...[0m
[32;1m/var/log/daemon.log file is rotated2...[0m
[37;1m/var/log/daemon.log file is rotated3...[0m
[35;1m/var/log/daemon.log file is rotated3...[0m 
[33;1mhello[0m
[33;1mthis is sample[0m 
[33;1mwhats up?[0m

我想要的是删除所有不必要的字符并输出为:

/var/log/daemon.log file is rotated1...
/var/log/daemon.log file is rotated2...
/var/log/daemon.log file is rotated3...
/var/log/daemon.log file is rotated3...
hello
this is sample
whats up?

我尝试使用sed删除特殊字符:

cat File.log | sed 's/[!@#\$%^&*()]//g' | sed -e 's/37;1m//g' > output.log

但它什么都不做。 有人可以给我写那些能满足我需求的代码吗? 谢谢。

编辑:发布帖子箭头后无法在论坛上看到...

2 个答案:

答案 0 :(得分:1)

sed -e 's/[[:cntrl:]]//g' -e 's/\[32;1m//g' -e 's/\[33;1m//g' -e 's/\[35;1m//g' -e 's/\[37;1m//g' -e 's/\[0m//g'

答案 1 :(得分:0)

echo '[32;1m/var/log/daemon.log file is rotated1...[0m' | awk -F'1m' '{sub("\[0m","",$2);print $2}'

/var/log/daemon.log文件已旋转1 ...