免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5432 | 回复: 13
打印 上一主题 下一主题

替换不可打印字符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-16 10:11 |只看该作者 |倒序浏览
cat -v <文件名>,发现有^[[42D 这样的字符,功能貌似backspace(回格),如何通过awk或者什么替换那字符?谢谢

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
2 [报告]
发表于 2009-10-16 10:17 |只看该作者
这样?

cat -v file|sed 's/^[[42D/\/b/g'

论坛徽章:
0
3 [报告]
发表于 2009-10-16 13:25 |只看该作者

回复 #2 MYSQLER 的帖子

实际是屏幕输出,屏幕输出是正常的,所以看不到那符号,只是定向到文件,用cat -v 看那文件,才有那字符。 我就是想在屏幕输出的时候过滤那字符。

论坛徽章:
0
4 [报告]
发表于 2009-10-16 13:28 |只看该作者

回复 #3 lotto 的帖子

你不是说屏幕输出是正常的吗?怎么又要从屏幕输出过滤掉??

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
5 [报告]
发表于 2009-10-16 13:29 |只看该作者
可能和格式有关

dos2unix urfile

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2009-10-16 13:31 |只看该作者

回复 #1 lotto 的帖子

退格符应该是^H样子吧。
试试cat file|col -b

论坛徽章:
0
7 [报告]
发表于 2009-10-16 13:48 |只看该作者

回复 #6 blackold 的帖子

cat file 没问题,cat -v file,发现那些字符。其实那些输出,是用用expect登陆上一台交换机拿数据,交换机输出命令,只显示20行,然后more提示按任意键下一页,我expect做了条件语句,看到more,自动发送空格。我用shell调用那expect,输出一些正常,但如果我用awk提取域就有问题,我把输出从定向一个文件,才发现有那些不可打印字符。估计它是用来删除过程出现的more。

expect程序如下(其实也不需要看):
#!/usr/bin/expect -f
set timeout 2
set host [lindex $argv 0]
    spawn telnet $host
    expect "Username:"
    send "xxxxxx\r"
    expect "Password:"
    send "xxxxxxxxxx\r"
    expect ">"
    send "super\r"
    expect "Password:"
    send "xxxxxxxxx\r"
    expect ">"
    send "display mac-address\r"
    expect {
        "More" {send " ";exp_continue}
        ">" {send "quit\r"}
        }
    expect ""
    send "\r"


执行程序:
/get_cam_hw.exp 172.16.24.35 >myfile

用cat myfile:

00e0.4d1b.cc9a 74 Learned GigabitEthernet5/1/6 AGING
000b.db95.1121 74 Learned GigabitEthernet5/1/7 AGING
000b.db95.2445 74 Learned GigabitEthernet5/1/7 AGING
000b.db95.2259 74 Learned GigabitEthernet5/1/7 AGING
000b.db95.242e 74 Learned GigabitEthernet5/1/7 AGING

cat -v myfile输出:

00e0.4d1b.cc9a 74 Learned GigabitEthernet5/1/6 AGING^M
000b.db95.1121 74 Learned GigabitEthernet5/1/7 AGING^M
.... More ....^[[42D ^[[42D000b.db95.2445 74 Learned GigabitEthernet5/1/7 AGING^M
000b.db95.2259 74 Learned GigabitEthernet5/1/7 AGING^M
000b.db95.242e 74 Learned GigabitEthernet5/1/7 AGING^M

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
8 [报告]
发表于 2009-10-16 13:50 |只看该作者
明显也有^M了,试试我5楼说的吧

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2009-10-16 13:51 |只看该作者
/get_cam_hw.exp 172.16.24.35 |col -b >myfile
行不行?你试过没有?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
10 [报告]
发表于 2009-10-16 13:57 |只看该作者

回复 #8 MYSQLER 的帖子

LZ关心的不是^M,而是里面的控制符,应该是这样。
就像man的输出一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP