文本中的不可见字符和处理

作者: 操作系统  发布:2019-09-03

Linux 文本中的不可见字符和处理

同事提供了一个接口,我通过curl调用,然后将返回结果写入到文件,然后用grep和sed处理这个文件。用浏览器和curl打开的时候,都是正常的,返回的都是

inetis_p1,masterpool;inetis_p2,masterpool;inetis_q1,masterpool;inetis_q2,masterpool;inetis_t1,masterpool;inetis_t2,masterpool;

但写入文件之后,用grep和sed处理的时候,总是说这是一个二进制文件

[[email protected] script]# grep master /var/tmp/qiehuan145.txt

匹配到二进制文件 /var/tmp/qiehuan145.txt

很奇怪,用vim打开之后,发现是这样的

inetis_p1,masterpool^@^@^@^@^@^@;inetis_p2,masterpool^@^@^@^@^@^@;inetis_q1,masterpool^@^@^@^@^@^@;inetis_q2,masterpool^@^@^@^@^@^@;inetis_t1,masterpool^@^@^@^@^@^@;inetis_t2,masterpool^@^@^@^@^@^@;

里面多了很多的不可见的字符^@

用cat -A也能看到

[[email protected] script]# cat -A /var/tmp/qiehuan145.txt

inetis_p1,masterpool^@^@^@^@^@^@;inetis_p2,masterpool^@^@^@^@^@^@;inetis_q1,masterpool^@^@^@^@^@^@;inetis_q2,masterpool^@^@^@^@^@^@;inetis_t1,masterpool^@^@^@^@^@^@;inetis_t2,masterpool^@^@^@^@^@^@;$

像这种不可见字符,用printf可以输出到文件中,比如:

printf 'test111111I am testing141012more testing' > /tmp/test.txt

如果用cat查看

[[email protected] script]# cat /tmp/test.txt

test                    I am testing

more testing[[email protected] script]#

如果用cat -A查看

[[email protected] script]# cat -A /tmp/test.txt

test^I^I^II am testing^L^H$

more testing[[email protected] script]#

现在说一下我是怎么解决的

cat -A /var/tmp/qiehuan145.txt  |sed 's/[^@]//g'

先用cat -A读取,然后用sed替换,不过需要注意到是^需要转义

Linux文本处理工具grep命令详解

Linux的grep命令

Linux中grep命令的12个实践例子

Linux基础命令之grep详解

Linux中强大且常用命令:find、grep

浅谈Linux 的grep命令与正则表达式

本文永久更新链接地址:

文本中的不可见字符和处理 同事提供了一个接口,我通过curl调用,然后将返回结果写入到文件,然后用grep和sed处理这个文件。用浏览...

本文由王中王开奖结果发布于操作系统,转载请注明出处:文本中的不可见字符和处理

关键词:

上一篇:如何在MacBook Pro Retina上安装Linux
下一篇:没有了