文件处理命令详解

1. wc 命令

  • 功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
  • 语法wc [选项] 文件
  • 常用选项

    • -c:统计字节数。
    • -l:统计行数。
    • -m:统计字符数(这个标志不能与 -c 标志一起使用)。
    • -w:统计字数(一个字被定义为由空白、跳格或换行字符分隔的字符串)。
    • -L:打印最长行的长度。
    • --help:显示帮助信息。
    • --version:显示版本信息。
  • 参数说明

    • [选项]:可选参数,用于指定统计内容。
    • 文件:需要统计内容的文件。
  • 示例

    [root@centos ~]# wc -c /etc/hosts
    158 /etc/hosts
    [root@centos ~]# wc -l /etc/passwd
    45 /etc/passwd
    [root@centos ~]# wc -m /etc/hostname
    7 /etc/hostname
    [root@centos ~]# wc -w /etc/motd
    10 /etc/motd
    [root@centos ~]# wc -L /etc/issue
    21 /etc/issue

2. sort 命令

  • 功能:对指定文件进行排序并将结果写到标准输出。
  • 语法sort [选项]... [文件]...
  • 常用选项

    • -n--number-sort:按字符串数值排序,与 -g 区别为不转为浮点数。
    • -g--general-number-sort:按通用数值排序,支持科学计数法。
    • -f--ignore-case:忽略大小写,默认大写字母不同。
    • -k--key=POS1[,POS2]:排序从 POS1 开始,若指定 POS2,则 POS2 结束,否则以 POS1 排序。
    • -t--field-separator=SEP:指定列的分割符。
    • -r--reverse:降序排序,默认为升序。
    • -h--human-numeric-sort:使用易读性数字(例如:2K,1G)。
    • -u--unique:去除重复的行。
    • -o--output=FILE:将输出写入文件。
  • 参数说明

    • [选项]:可选参数,用于指定排序方式和输出方式。
    • [文件]:需要排序的文件。
  • 示例

    [root@centos ~]# sort file.txt
    [root@centos ~]# sort -n file.txt
    [root@centos ~]# sort -u file.txt
    [root@centos ~]# sort -o sorted_file.txt file.txt

    其他示例

    $ sort -t ':' -k 3 -nr passwd ; 对 passwd 文件,以冒号 (:) 进行分割,然后对第三列以数字方式进行降序排序。
    $ du -h | sort -hr ; 将当前目录下的文件夹按大小排序。
    $ ps aux | sort -gr -k 4 | head -n 5 ; 查看系统进程中,内存占用最多的前 5 个进程信息。

3. uniq 命令

  • 功能:可以去除排序过的文件中的重复行,因此 uniq 经常和 sort 合用。
  • 语法uniq [选项]... [文件]
  • 常用选项

    • -c:统计出现的次数(count)。
    • -d:只显示被计算为重复的行。
    • -D:显示所有被计算为重复的行。
    • -u:显示唯一值,即没有重复值的行。
    • -i:忽略大小写。
  • 参数说明

    • [选项]:可选参数,用于指定显示内容和格式。
    • [文件]:需要处理的文件。
  • 示例

    $ sort file.txt | uniq ; 对 file.txt 文件,排序后去重。
    $ sort file.txt | uniq -d ; 显示 uniq.txt 文件中重复的行。
    $ sort file.txt | uniq -d -c ; 统计 uniq.txt 文件中重复行出现的次数。

4. diff 命令

  • 功能:比较两个文件,并输出两个文件的不同的行。
  • 语法diff [选项] [文件1或目录1] [文件2或目录2]
  • 参数说明

    • [选项]:可选参数,用于指定比较方式和输出格式。
    • [文件1或目录1]:第一个要比较的文件或目录。
    • [文件2或目录2]:第二个要比较的文件或目录。
  • 示例

    [root@centos ~]# diff file1.txt file2.txt
    1c1
    < Hello World
    ---
    > Hello CentOS

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝