• 🍖文件管理之字符处理 sort uniq cut tr wc


    引入

    1.文件系统

    文件系统是操作系统操作计算机硬盘的应用程序
    

    2.文件

    文件是文件系统提供给用户操作硬盘的一种功能
    

    3.字符处理

    • sort : 排序文本, 默认对整列有效

    • wc : 统计文件行数, 字节, 字符数

    • uniq : 取出重复行

    • cut : 把文本切分类似于awk

    • sed : 流式编辑器, 现规定好规则, 一次只处理一行内容

    • awk : 用于格式化处理文件, 处理有规律的文件

    • grep : 强大的文本搜索工具 (文件过滤)

    一.排序: sort

    1.应用场景

    在有些情况下, 需要对一个无序的文本文件进行数据的排序操作, 这时候就要用到 sort

    2.常用选项

    选项 作用
    -t 指定分隔符, 默认以空格为分隔符
    -k 指定某列来进行排序
    -n 依照数值大小排序,而不是以字符串方式
    -r 倒序

    3.应用示例

    默认排序:以第一个字符作比较,也可以说对应的是ASCLL表上对应的数字的比较,默认升序
    [root@shawn ~]# cat a.txt 
    c:2
    d:444
    a:5
    e:1
    f:11
    [root@shawn ~]# sort a.txt
    a:5
    c:2
    d:444
    e:1
    f:11
    
    "-t:","-k2":以":"做分隔符,对比第二个字符(默认一个一个字符做比较)
    [root@shawn ~]# sort -t: -k2 a.txt
    e:1
    f:11
    c:2
    d:444
    a:5
     
    "-n":依照数值大小排序,而不是以字符串方式一个一个对比
    [root@shawn ~]# sort -t: -k2 -n a.txt
    e:1
    c:2
    a:5
    f:11
    d:444
    
    "-r":倒序排列
    [root@shawn ~]# sort -t: -k2 -n -r a.txt
    d:444
    f:11
    a:5
    c:2
    e:1
    

    二.去重: uniq

    1.应用场景

    用于检查及删除文本文件中重复出现的行列, 一般与sort命令结合使用

    2.常用选项

    选项 作用
    -c 在每列的旁边显示出现的次数
    -d 仅显示重复出现的行列
    -u 仅显示出现一次的行列

    3.应用示例

    与"sort"配合去重
    [root@shawn ~]# cat a.txt 
    song
    123
    shawn
    123
    shawn
    xing
    [root@shawn ~]# sort a.txt 
    123
    123
    shawn
    shawn
    song
    xing
    [root@shawn ~]# sort a.txt | uniq
    123
    shawn
    song
    xing
    
    "-c": 显示重复次数
    [root@shawn ~]# sort a.txt | uniq -c
          2 123
          2 shawn
          1 song
          1 xing
     
    "-d": 仅显示重复出现的行列
    [root@shawn ~]# sort a.txt | uniq -d
    123
    shawn
    
    "-u"; 仅显示出现一次的行列
    [root@shawn ~]# sort a.txt | uniq -u
    song
    xing
    

    三.截取字段: cut

    1.应用场景

    用来截取显示行中的指定部分, 与awk类似

    2.常用选项

    选项 作用
    -d 指定字段的分隔符, 默认字段分隔符为"tab"
    -f 显示指定的内容

    3.应用示例

    以分隔符":"分隔字符,截取"1-4"段
    [root@shawn ~]# cat a.txt 
    root:x:0:0:root:/root:/bin/bash
    [root@shawn ~]# cut -d ":" -f1-4 a.txt 
    root:x:0:0
    
    以分隔符":"分隔字符,截取"1,3,6,7"段
    [root@shawn ~]# cut -d ":" -f1,3,6,7 a.txt 
    root:0:/root:/bin/bash
    

    四.tr命令

    替换或删除

    1.参数

    "-d" :删除
    tr "xxx" "XXX" :替换
    

    2.应用示例

    替换
    [root@shawn ~]# cat a.txt 
    root:x:0:0:root:/root:/bin/bash
    [root@shawn ~]# cat a.txt | tr "root" "ROOT"
    ROOT:x:0:0:ROOT:/ROOT:/bin/bash
    
    "-d" : 删除
    [root@shawn ~]# cat a.txt | tr -d "root"
    :x:0:0::/:/bin/bash
     
    对字符进行替换,是每个字符都替换,而不是匹配一整个单词替换
    [root@shawn ~]# echo "Hello Songhaixing 123" > a.txt 
    [root@shawn ~]# cat a.txt 
    Hello Songhaixing 123
    [root@shawn ~]# tr "Song" "sONG" < a.txt 
    HellO sONGhaixiNG 123
    

    五.WC命令

    统计数字

    1.常用选项

    选项 作用
    -c 统计文件的Bytes
    -l 统计文件的行数
    -w 统计文件的单词数, 默认以空白字符为分隔符

    2.应用示例

    "-c": 查看大小
    [root@shawn ~]# cat a.txt 
    Hello Songhaixing 123
    hello nihao
    [root@shawn ~]# ll a.txt 
    -rw-r--r-- 1 root root 34 10月 27 22:12 a.txt
    [root@shawn ~]# wc -c a.txt 
    34 a.txt
     
    "-l": 查看行数
    [root@shawn ~]# wc -l a.txt
    2 a.txt
    
    "-w": 统计单词个数
    [root@shawn ~]# wc -w a.txt 
    5 a.txt
    

    六.文件处理之三剑客

    https://www.cnblogs.com/songhaixing/p/13866686.html

  • 相关阅读:
    shell脚本:/bin/sh^M: bad interpreter: No such file or directory。(转)
    Buffer在JDK中的基本说明

    清除版本控制信息针对 SVN
    修改——对密码进行加密
    省市加载javascript
    visual studio 2010 中 javascript 提示文本
    折腾自己的博客样式,自适应两列布局
    给动态加载的图片添加延迟加载(附在线demo)
    44种IE css bug实例测试总结(转载)
  • 原文地址:https://www.cnblogs.com/songhaixing/p/13888013.html
Copyright © 2020-2023  润新知