• 简单的文本处理


      文本处理命令

     tr命令:用来删除一段围文本信息中的某些文字,或将其进行转换。使用方式:tr [option]...SET1 [SET2]。常用的选项有选项有-d:删除和set1匹配的字符,-s:去除set1指定的在输入文本中连续并重复的字符

     $ echo 'hello world' | tr -d 'olh' # 删除hello world中所有的o,l,h

     $ echo 'hello' | tr -s 'l'  #将hello中的ll去重 

     $ cat /etc/passwd | tr '[:lower:]'  '[:upper:]'  #将小写全部变成大写

     $ echo 'shiyanlou' | tr '[a-z]'  '[A-Z]'  #同上

     col命令:将Tab换成对等数量的空格键,或反转这个操作。使用方式:col [option] 。常用的选项有 -x:将Tab转为空格; -h:将空格转换为Tab

     $ cat -A /etc/protocols #查看/etc/protocols中的不可见字符。可以看到很多^I,这是Tab转义成可见字符的符号

     $ cat /etc/protocols | col -x | cat -A #使用col -x将/etc/protocol中的Tab转换为空格,然后在使用cat查看

     join命令:将两个文件中包含相同内容的那一行合并在一起。使用方式:join [option]... file1 file2。常用的选项有-t:指定分隔符,默认为空格;-i:忽略大小写的差异;-1:指明第一个文件要用哪个字段来对比,默认对比第一个字段;-2:只能第二个文件要用哪个字段来对比,默认对比第一个字段

     $ echo '1 hello world' > file1 #创建file1

     $ echo '1 hello shiyanlou' > file2 #创建file2

     $ join file1 file2

     $ sudo join -t':' /etc/passwd /etc/shadow  #将/etc/passwd和/etc/shadow两个文件合并,指定以':'为分隔符

     $ sudo join -t':' -1 4 /etc/passwd -2 3 /etc/group #将/etc/passwd和/etc/group两个文件合并,并指定以':'为分隔符,分别比对第四和第三个字段

     paste命令是在不对比数据的情况下,简单的将多个文件合并在一起,以Tab隔开。使用方式:paste [option] file... 常用选项有 -d:制定合并的分隔符,默认为Tab;-s:不合并到一行,每个文件为一行

     $ echo hello > file1

     $ echo world > file2

     $ echo www.baidu.com > file3

       $ paste -d ':' file1 file2 file3

     $ paste -s file1 file2 file3

     小蜜蜂游戏~

     $ sudo apt-get install ninvaders 

     在文件打包与解压缩中提到Windows/dos与Linux/UNIX文本文件一些特殊字符不一致,如断行符Windows为CR+LF( ),Linux/UNIX为LF( )。使用cat -A文本可以看到文本中包含的不可见特殊字符。Linux的 表现出来是一个$,而Windows/dos表现出来为^M$,可以直接使用dos2unix和unix2dos工具在两种格式之间进行转换,使用file命令可以查看文件的具体类型。

     

     

  • 相关阅读:
    node.js入门
    分布式爬虫
    ES6入门
    Vue.js入门
    用scrapy爬取亚马逊网站项目
    垃圾回收器
    HTTP协议详解
    有效的邮箱地址
    C#中正则表达式的使用
    抽象类
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/4699824.html
Copyright © 2020-2023  润新知