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

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

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

[root@jiankong 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也能看到

[root@jiankong 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 'test\011\011\011I am testing\014\010\012more testing' > /tmp/test.txt

如果用cat查看

[root@jiankong script]# cat /tmp/test.txt

test                    I am testing

more testing[root@jiankong script]#

如果用cat -A查看

[root@jiankong script]# cat -A /tmp/test.txt

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

more testing[root@jiankong script]#

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

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

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

转载于:https://blog.51cto.com/xiaosu/1331220

linux 文本中的不可见字符和处理相关推荐

  1. JS实现文本中查找并替换字符

    JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...

  2. Excel 2010 VBA 入门 047 判断某文本中是否包含指定字符(Instr)

    示例 如图所示,该表为某公司采购清单.由于在记录时并未标记供应商来源地,只能通过E列供应商名称中寻找.现需要筛选出所有上海的供应商采购记录,该如何用VBA实现? 商品编码 入库日期 部门 业务员 供应 ...

  3. 使用SQL除掉文本中特殊的ascll字符比如Enter,Tab,空格键

    在将数据库中的数据导出到Excel中时,如果文本中含有tab键,enter键,空格键,但是放在datatable中或者在datagridview中显示时也无法看出异常. 但是将数据导出到Excel或者 ...

  4. 如何解决linux标准输出中带颜色的字符

    带颜色的字符本身的编码是包含颜色码的,这一点往往不会有太多的影响,可一旦被他影响了,那就是掉入了一个大坑里. 所幸的是sed可以用来去除字符中的颜色代码 sed remove color codes ...

  5. 帮我写一段dart代码,目的是将字符串里的windows、macos、linux系统中的文件名保留字符替换成中文全角字符。使最后返回的字符串可以用于windows、macos、linux的文件名...

    String replaceSpecialChar(String str) {str = str.replaceAll("/", "/");str = str. ...

  6. 在线文本中插入符号工具

    在线文本中插入符号工具 在线文本中插入符号工具 工具能够在文本中任意两个字符之间都插入指定的符号,非常简单就可以完成绚丽个性的文本段落. https://tooltt.com/txt-symbol/

  7. window、linux、mac 文件路径禁止字符, 路径长度【全网总结】

    参考: https://9to5answer.com/what-characters-are-forbidden-in-windows-and-linux-directory-names https: ...

  8. linux文件编码无法修改,在Linux系统中修改文本的字符编码的方法

    正如我们所知道的那样,电脑只能够处理低级的二进制值,并不能直接处理字符.当一个文本文件被存储时,文件中的每一个字符都被映射成二进制值,实际存储在硬盘中的正是这些"二进制值".之后当 ...

  9. linux中将文本中的单词换掉的指令_从零开始学Linux运维|19.文本处理相关命令(2)...

    1.tr tr用于替换文本文件中的字符,格式为"tr [要替换的字符] [替换后的字符]" tr不能用于替换完整字符串,只能替换对应的字符 将小写都替换成大写"cat t ...

最新文章

  1. centos中python2.7被覆盖,yum,python重新安装
  2. Linux之自动化部署
  3. js操作完的数值赋回html元素,JS的学习
  4. Quartus和ISErom文件格式
  5. 数组及字符串相关知识
  6. 物理竞赛得奖学计算机,物理竞赛林紫琪带你探索清华学堂计算机科学实验班”(姚班)...
  7. 华为手机30s桌面循环滑动_华为发飙了!麒麟820+双模5G,从2699元跌至2499元,超出消费者预期...
  8. L3-020 至多删三个字符 [DP]
  9. sqlite3的基本操作
  10. 从文件系统迁移到ASM上
  11. MySQL · myrocks · 事务锁分析
  12. pic12f1823单片机入门_PIC单片机C语言入门实例
  13. Selenium打开IE浏览器方法以及报错处理
  14. xp系统计算机蓝屏,Xp系统出现蓝屏代码 0x0000007b解决方法
  15. 6.0系统xposed框架安装流程
  16. 神经内分泌肿瘤如何分级,神经系统分级调节概念
  17. ⨯ Get “https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.
  18. [20190718]12c rman新特性 表恢复.txt
  19. Python3+Scrapy通过代理爬取携程酒店数据
  20. B站上的各类学习资源

热门文章

  1. 人工智能——框架表示法
  2. 自助出版风靡美国的7个理由(转载)
  3. 【BlackHat】速修复!有人正在扫描 Exchange 服务器寻找 ProxyShell 漏洞
  4. Adobe 紧急修复严重的 CodeFusion 漏洞
  5. linux使用windows中编辑的文件,格式问题
  6. 2018.02.26 9周4次课
  7. 对接SAP人事档完成AD账号的自动授权
  8. struts 2 时间控件
  9. Recursion and Tail Recursion in Java and Erlang
  10. Hibernate在配置表映射文件时cascade的类型及意义