常用命令less,more,sort,comm补充

发布于:2025-02-10 ⋅ 阅读:(59) ⋅ 点赞:(0)

comm 命令详解

comm 是 Linux 系统下用于比较两个已排序文件的命令行工具。它主要用于找出文件之间的差异或相同之处,例如:

  • 两个文件中相同的行。

  • 仅在第一个文件中的行。

  • 仅在第二个文件中的行。


基本语法

comm [选项] 文件1 文件2

输出格式

comm 命令的输出分为三列,每列对应不同的比较结果:

  1. 第一列:仅在文件1中出现的行。

  2. 第二列:仅在文件2中出现的行。

  3. 第三列:在两个文件中都出现的行。


常用选项

选项 说明
-1 不显示第一列(仅在文件1中出现的行)。
-2 不显示第二列(仅在文件2中出现的行)。
-3 不显示第三列(在两个文件中都出现的行)。
--check-order 检查输入文件是否已排序,如果未排序则报错。
--nocheck-order 不检查输入文件是否已排序(默认行为)。
--output-delimiter=STR 使用指定的字符串 STR 作为列分隔符(默认是制表符)。

注意事项

  • comm 要求输入文件必须是已排序的。如果文件未排序,可以使用 sort 命令先对文件进行排序:

    sort file1.txt -o file1.txt
    sort file2.txt -o file2.txt
  • 如果文件未排序且未使用 --nocheck-ordercomm 可能会产生错误或不可预期的结果。


常用命令

  1. 输出两个文件的交集(相同的行):

    comm -12 file1 file2
  2. 输出只在文件2中的行

    comm -13 file1 file2
  3. 输出只在文件1中的行

    comm -23 file1 file2

less 命令详解

less 是一个用于查看文件内容的命令行工具,支持分页显示和搜索。

常用选项

选项 说明
-N 显示行号。
+linenumber 从指定行开始显示文件。

操作快捷键

快捷键 说明
/ keyword 向下搜索下一个 keyword 匹配项,输入关键词后按 Enter 键。
? keyword 向上搜索上一个 keyword 匹配项,输入关键词后按 Enter 键。
n 查找下一个匹配项。
N 查找上一个匹配项。
向上滚动一行。
向下滚动一行。
b 或 PageUp 向上滚动一页。
Space 或 PageDown 向下滚动一页。
g 跳到文件的开头。
G 跳到文件的末尾。
= 显示当前行号。
q 退出 less 命令。

more 命令详解

more 是一个用于分页显示文本文件内容的命令。

常用选项

选项 说明
+/STRING 从匹配搜索字符串 STRING 的位置开始显示。
+num 从文件的第 num 行开始显示内容。

示例

more +/search_string filename

sort 命令详解

sort 用于对文件内容进行逐行排序,支持多种排序规则。

常用选项

选项 说明
-b 忽略行首的空白字符。
-c 检查输入是否已排序。
-n 按数值大小排序。
-r 以逆序(从大到小)排序。
-k <n> 指定排序的字段。例如,-k 2 表示根据第二列排序。
-o <file> 将输出写入指定文件。
-t <char> 指定字段分隔符,默认为空格或制表符。
-u 去重。配合 -c,严格校验排序;不配合 -c,则只输出一次排序结果。
--parallel=<n> 指定线程数量,使用多线程排序。

注意事项

  • 默认情况下,sort 是区分大小写的。大写字母会排在小写字母前面。如果想忽略大小写,可以使用 -f 选项。

  • 如果输入是非常大的文件,可能需要调整内存使用,可以使用 --buffer-size 选项来设置缓冲区大小。

  • 使用 -k 指定关键字列进行排序时,默认以空格分隔。可搭配 -t 自定义字段分隔符。


总结

  • comm 用于比较两个已排序文件。

  • less 和 more 用于查看文件内容,less 功能更强大。

  • sort 用于对文件内容进行排序,支持多种排序规则和优化选项。

  • 根据需求选择合适的工具和选项,可以高效处理文本文件。


网站公告

今日签到

点亮在社区的每一天
去签到