Linux 常用命令汇总(三):查看文件 & 内容处理 您所在的位置:网站首页 查看域名解析路径的命令 Linux 常用命令汇总(三):查看文件 & 内容处理

Linux 常用命令汇总(三):查看文件 & 内容处理

2024-07-14 04:25| 来源: 网络整理| 查看: 265

一、查看文件及内容处理命令 1.1 cat 1.1.1 介绍

cat 是 Linux 和其他 Unix-like 系统中一个非常基础且常用的命令,用于显示、合并或复制文本文件的内容

1.1.2 使用方法 cat [选项] [文件...] 1.1.3 参数详解 [选项]:控制 cat 命令的行为。[文件...]:要显示内容的文件列表。 1.1.4 常见选项 -n:显示行号。-b:显示非空行的行号。-s:将连续的空行压缩为单个空行。-E:显示行尾的 $ 符号。-T:显示制表符为 ^I。-v:显示不可打印的字符。 1.1.5 常见使用案例 1.1.5.1 显示文件内容 cat myfile.txt

这将输出 myfile.txt 的全部内容到标准输出(通常是终端) 

1.1.5.2 显示文件内容并包括行号 cat -n myfile.txt

这将输出 myfile.txt 的内容,并在每行前面加上行号

1.1.5.3 将多个文件的内容合并并显示 cat file1.txt file2.txt

这将连续显示 file1.txt 和 file2.txt 的内容

1.1.5.4 压缩空行 cat -s myfile.txt

这将输出 myfile.txt 的内容,但连续的空行将只显示一个

1.1.6 注意事项 cat 命令主要用于查看小文件的内容。对于非常大的文件,使用 cat 可能会导致终端滚动得非常快,不易于阅读。在这种情况下,使用 more 或 less 命令来分页查看文件内容可能更为合适。cat 命令也常用于将多个文件的内容合并到一个文件中,通过重定向输出到一个新文件来实现。当处理包含特殊字符的文件时,使用 -v 选项可以显示这些不可打印的字符,这在调试某些文本文件问题时可能很有用。 1.2 tac 1.2.1 介绍

tac 命令与 cat 命令的功能相反,它用于反向显示文件的内容

1.2.2 使用方法 tac [文件...] 1.2.3 参数详解 [文件...]:要反向显示内容的文件列表。

tac 命令没有像 cat 那样的众多选项,因为它专注于执行一个简单的任务:反向显示文件内容

1.2.4 常见使用案例 1.2.4.1 反向显示文件内容 tac myfile.txt

这将输出 myfile.txt 的全部内容,但顺序是反向的,即最后一行首先显示,第一行最后显示

1.2.5 注意事项 tac 命令在处理非常大的文件时可能会很慢,因为它需要读取整个文件并反向输出内容。与 cat 命令类似,tac 主要用于文本文件。如果尝试对非文本文件使用 tac,可能会得到不可预测的输出。由于 tac 是反向显示文件内容,它在某些特定的文本处理或调试场景中可能会很有用,例如从文件末尾开始查看日志文件。 1.3 more 1.3.1 介绍

more 是一个在 Linux 和其他 Unix-like 系统中常用的命令,用于分页显示文件内容

1.3.2 使用方法 more [文件...] 1.3.3 参数详解

[文件...]:要分页显示内容的文件列表

1.3.4 常见操作 空格键:显示下一页内容。Enter键:显示下一行内容。q:退出查看。f:显示当前行号。=:显示当前文件名和行号。/:搜索特定字符串。n:跳过当前搜索到的字符串的下一个匹配项。N:跳过当前搜索到的字符串的上一个匹配项。h:显示帮助信息。 1.3.5 常见使用案例 1.3.5.1 分页显示文件内容 more myfile.txt

这将允许用户逐页查看 myfile.txt 的内容。使用空格键或 Enter 键来浏览文件

1.3.5.2 搜索文件中的特定字符串 more myfile.txt

在 more 的交互模式下,输入 / 并跟上你要搜索的字符串,例如 /searchstring,然后按 Enter 键。more 会高亮显示第一个匹配项,并允许你使用 n 和 N 键来导航到下一个或上一个匹配项。

1.3.6 注意事项 more 命令对于查看大文件或长输出特别有用,因为它允许用户在不滚动整个终端窗口的情况下查看文件内容。与 cat 命令不同,more 提供了交互式的浏览体验,用户可以按需查看文件的不同部分。对于非常大的文件,more 可能不是最高效的工具,因为它需要逐页加载内容。在这种情况下,less 命令可能是一个更好的选择,因为它提供了更强大的导航和搜索功能。 1.4 less 1.4.1 介绍

less 是一个在 Linux 和其他 Unix-like 系统中广泛使用的命令,用于查看文件内容,并提供了比 more 更加强大和灵活的导航和搜索功能

1.4.2 使用方法 less [文件...] 1.4.3 常见操作 空格键:显示下一页内容。b:显示上一页内容。Enter键:显示下一行内容。k 或 上箭头:显示上一行内容。j 或 下箭头:显示下一行内容。G:直接跳到文件末尾。g:直接跳到文件开头。/:搜索特定字符串(按 Enter 键后搜索)。?:反向搜索特定字符串。n:跳到下一个搜索匹配项。N:跳到上一个搜索匹配项。h 或 ?:显示帮助信息。q:退出查看。y:复制当前行到剪贴板(需支持剪贴板的终端)。p:粘贴剪贴板内容(需支持剪贴板的终端)。 1.4.4 常见使用案例 1.4.4.1 使用 less 查看文件内容 less myfile.txt

这将打开 less 查看器,并显示 myfile.txt 的内容。你可以使用上述的键盘快捷键来导航和搜索文件内容

1.4.4.2 在 less 中搜索字符串

在 less 查看器中,输入 / 并跟上你要搜索的字符串,然后按 Enter 键。less 会高亮显示第一个匹配项,并允许你使用 n 和 N 键来导航到下一个或上一个匹配项。

1.4.5 注意事项 less 命令是 more 命令的增强版,提供了更多的功能和灵活性。如果你经常需要查看和搜索长文件,less 会是一个更好的选择。less 允许用户向前和向后翻页,这在某些情况下比 more 更方便。less 支持在终端中复制和粘贴文本,这对于处理文本文件非常有用。less 的帮助屏幕提供了所有可用命令的概览,这对于新用户来说非常有用。 1.5 head 1.5.1 介绍

head 是一个在 Linux 和其他 Unix-like 系统中常用的命令,用于显示文件的开头部分

1.5.2 使用方法 head [选项] [文件...] 1.5.3 参数详解 -n [行数]:显示文件开头指定行数的内容。如果不指定行数,则默认显示前 10 行。-c [字节数]:显示文件开头指定字节数的内容。-v:显示文件名作为输出的前缀。-q:静默模式,不显示文件名。 1.5.4 常见使用案例 1.5.4.1 显示文件的前 10 行 head myfile.txt

这将输出 myfile.txt 的前 10 行内容

1.5.4.2 显示文件的前 5 行 head -n 5 myfile.txt

这将输出 myfile.txt 的前 5 行内容

1.5.4.3 显示文件的前 20 字节 head -c 20 myfile.txt

这将输出 myfile.txt 文件开头的前 20 字节内容

1.5.5 注意事项 head 命令非常适合于快速查看文件的开头部分,尤其是当文件非常大时。head 的输出通常用于快速检查日志文件、配置文件或其他文本文件的开头部分。如果你只关心文件的开头几行,使用 head 会比使用 cat 或 less 更高效,因为它不需要读取整个文件。 1.6 tail 1.6.1 介绍

tail 是 Linux 和其他 Unix-like 系统中常用的命令,用于显示文件的末尾部分

1.6.2 使用方法 tail [选项] [文件...] 1.6.3 参数详解 -n [行数]:显示文件末尾指定行数的内容。如果不指定行数,则默认显示最后 10 行。-c [字节数]:显示文件末尾指定字节数的内容。-f:实时追踪文件变化,并显示新添加的内容。常用于查看日志文件。-q:静默模式,不显示文件名。-v:显示文件名作为输出的前缀。 1.6.4 常见使用案例 1.6.4.1 显示文件的最后 10 行 tail myfile.txt

这将输出 myfile.txt 的最后 10 行内容

1.6.4.2 显示文件的最后 20 行 tail -n 20 myfile.txt

这将输出 myfile.txt 的最后 20 行内容

1.6.4.3 实时追踪查看日志文件的新内容 tail -f /var/log/syslog

这将开始显示 /var/log/syslog 文件的最后 10 行,并在文件有新内容添加时实时更新显示

1.6.5 注意事项 tail 命令特别适用于查看日志文件的最新条目,因为它允许你快速查看文件末尾的内容。使用 -f 选项时,tail 会保持打开状态,并在文件变化时实时更新显示。这对于监控日志文件特别有用。与 head 命令类似,tail 也非常高效,因为它不需要读取整个文件,而只是文件的末尾部分。 1.7 cut 1.7.1 介绍

cut 是一个在 Linux 和其他 Unix-like 系统中用于从文件或标准输入中提取列的命令行工具

1.7.2 使用方法 cut [选项] [文件] 1.7.3 参数详解 -b:按字节位置提取列。-c:按字符位置提取列。-d:指定字段分隔符,默认为制表符。-f:指定要提取的字段。-n:与 -b 或 -c 一起使用,不分割多字节字符。 1.7.4 常见使用案例 1.7.4.1 提取文件的第一列 cut -d ',' -f 1 filename.csv

这将从名为 filename.csv 的 CSV 文件中提取第一列的内容,假设字段是由逗号分隔的 

1.7.4.2 提取文件的第二和第三列 cut -d ',' -f 2,3 filename.csv

这将提取第二列和第三列的内容

1.7.4.3 提取文件的第一到第四字节 cut -b 1-4 filename.txt

 这将从名为 filename.txt 的文本文件中提取每行的第一到第四个字节

1.7.5 注意事项 cut 命令对于处理由固定分隔符(如逗号、制表符等)分隔的文本文件非常有用。如果文件包含多字节字符(如 UTF-8 编码的字符),使用 -n 选项可以防止 cut 命令错误地分割这些字符。cut 命令主要用于处理简单的文本文件,对于复杂的文本处理任务,可能需要使用更强大的文本处理工具,如 awk。 1.8 split 1.8.1 介绍

split 是一个在 Linux 和其他 Unix-like 系统中用于将大文件分割成较小的文件的命令行工具

1.8.2 使用方法 split [选项] [原始文件] [输出前缀] 1.8.3 参数详解 -b:指定每个输出文件的大小(以字节为单位)。-C:与 -b 类似,但尽量保持每行的完整性。-l:指定每个输出文件的行数。-a:指定输出文件名的后缀长度。-d:使用数字后缀代替默认的字母后缀。 1.8.4 常见使用案例 1.8.4.1 将文件分割成每个 1MB 的小块 split -b 1M largefile.log smallfile

这将创建一个名为 smallfileaa,smallfileab,smallfileac 等的序列文件,每个文件大约 1MB 大小(最后一个文件可能小于 1MB) 

1.8.4.2 将文件分割成每个包含 1000 行的文件 split -l 1000 largefile.log smallfile

这将创建一个序列文件,每个文件包含 1000 行(最后一个文件可能行数少于 1000)

1.8.4.3 使用数字后缀 split -b 1M -d largefile.log smallfile

这将创建名为 smallfile00,smallfile01,smallfile02 等的序列文件,使用数字作为后缀

1.8.5 注意事项 split 命令对于处理大型文件非常有用,可以将它们分割成更易于管理和处理的较小文件。通过指定每个文件的大小或行数,你可以控制输出文件的大小。默认情况下,split 命令使用字母作为输出文件名的后缀,但你可以使用 -d 选项来改为使用数字。分割后的文件可以通过 cat 命令或其他文本处理工具重新合并。 1.9 paste 1.9.1 介绍

paste 是一个在 Linux 和其他 Unix-like 系统中用于并排合并文件的命令行工具

1.9.2 使用方法 paste [选项] [文件...] 1.9.3 参数详解 -d:指定分隔符,用于分隔不同的文件列。-s:序列模式,将每个文件的内容作为一个单独的序列处理。 1.9.4 常见使用案例 1.9.4.1 将两个文件的内容按列合并,使用制表符作为分隔符 paste file1.txt file2.txt

这将输出两个文件的内容,每行的对应列之间用制表符分隔

1.9.4.2 使用逗号作为分隔符合并文件 paste -d, file1.txt file2.txt

这将使用逗号作为分隔符来合并文件内容 

1.9.4.3 序列模式合并,每个文件的内容作为一个单独的序列处理 paste -s file1.txt file2.txt

在序列模式下,paste 会将每个文件的内容作为一个单独的块处理,而不是逐行合并 

1.9.5 注意事项 paste 命令主要用于将两个或多个文件的内容按列合并,这在数据比较、分析等场景下非常有用。默认情况下,paste 使用制表符作为分隔符,但你可以使用 -d 选项指定其他分隔符。如果文件的行数不同,paste 会根据最短的文件长度来输出合并后的结果。 1.10 sort 1.10.1 介绍

sort 是 Linux 和其他 Unix-like 系统中用于对文本行进行排序的命令行工具

1.10.2 使用方法 sort [选项] [文件] 1.10.3 参数详解 -n:按照数值大小排序,而不是按照字符编码排序。-r:逆序排序,即从大到小或从 Z 到 A。-k:指定按照哪一列进行排序。-t:指定字段分隔符,与 -k 一起使用来指定排序的字段。-u:去重,只输出唯一的行。-o:将排序后的结果输出到指定的文件,而不是标准输出。 1.10.4 常见使用案例 1.10.4.1 对文件内容进行排序 sort filename.txt

这将输出 filename.txt 文件内容的排序版本 

1.10.4.2 按照数值排序 sort -n numbers.txt

这将按照数值大小对 numbers.txt 文件中的行进行排序

1.10.4.3 逆序排序 sort -r filename.txt

这将输出 filename.txt 文件内容的逆序排序版本

1.10.4.4 指定字段分隔符和排序的字段 sort -t: -k2 filename.txt

假设 filename.txt 是由冒号分隔的字段组成的文件,该命令将按照第二个字段进行排序 

1.10.4.5 去重并输出到指定文件 sort -u filename.txt -o sorted_unique.txt

这将去除 filename.txt 文件中的重复行,并将排序后的唯一行输出到 sorted_unique.txt 文件中

1.10.5 注意事项 sort 命令默认按照字符编码进行排序,这对于文本文件通常是足够的。如果文件包含多列数据,你可以使用 -t 和 -k 选项来指定按照哪一列进行排序。对于大型文件,sort 命令可能需要一些时间来执行排序操作。 1.11 uniq 1.11.1 介绍

uniq 是一个在 Linux 和其他 Unix-like 系统中用于从文本文件中去除重复行的命令行工具

1.11.2 使用方法  uniq [选项] [文件] 1.11.3 参数详解 -c:在每行旁边显示该行在文件中出现的次数。-d:仅显示重复的行。-u:仅显示不重复的行。-i:在比较行时忽略大小写。-s:跳过前 N 个字符后再进行比较。-w:仅比较每行的前 N 个字符。 1.11.4 常见使用案例 1.11.4.1 去除文件中的重复行 sort filename.txt | uniq

首先使用 sort 命令对 filename.txt 文件进行排序,然后通过管道将排序后的输出传递给 uniq,从而去除连续重复的行 

1.11.4.2 显示每行出现的次数 sort filename.txt | uniq -c

这将在每行旁边显示该行在文件中出现的次数

1.11.4.3 仅显示重复的行 sort filename.txt | uniq -d

这只会输出那些在文件中至少出现两次的行 

1.11.4.4 仅显示不重复的行,并忽略大小写 sort filename.txt | uniq -u -i

这将输出文件中所有不重复的行,并且在比较时忽略大小写 

1.11.4.5 跳过前 3 个字符后再比较行 sort filename.txt | uniq -s 3

这将跳过每行的前三个字符,然后基于剩余的字符来比较和去除重复行 

1.11.5 注意事项 uniq 命令只能去除连续重复的行,因此通常与 sort 命令结合使用。使用 -c、-d 或 -u 选项可以进一步控制输出的内容。uniq 命令对于处理大型文本文件并去除其中的重复行非常有用。 1.12 wc 1.12.1 介绍

wc 是 Linux 和其他 Unix-like 系统中用于计算文件中字节数、字数和行数的命令行工具

1.12.2 使用方法 wc [选项] [文件...] 1.12.3 参数详解 -b:只计算字节数。-c:计算字节数,与 -b 相同。-l:只计算行数。-w:只计算字数。-m:只计算字符数。--bytes、--chars、--lines、--words:分别用于计算字节、字符、行数和字数,这些选项是更明确的替代 -b、-m、-l 和 -w。 1.12.4 常见使用案例 1.12.4.1 计算文件的字节数、字数和行数 wc filename.txt

这将输出三个值:字节数、字数和行数

1.12.4.2 仅计算行数 wc -l filename.txt

或者

wc --lines filename.txt 1.12.4.3 仅计算字数 wc -w filename.txt

或者

wc --words filename.txt

这将只输出 filename.txt 文件中的字数

1.12.4.4 计算多个文件的统计信息 wc file1.txt file2.txt

这将分别输出 file1.txt 和 file2.txt 的统计信息

1.12.5 注意事项 wc 命令默认会同时输出字节数、字数和行数。当你只关心其中一个统计信息时,可以使用相应的选项来仅输出该信息。对于非常大的文件,wc 命令可能会需要一些时间来计算统计信息。 1.13 iconv 1.13.1 介绍

iconv 是一个用于字符集转换的命令行工具

1.13.2 使用 iconv [选项] [源文件 [目标文件]] 1.13.3 参数详解 -f 或 --from-code:指定源字符集。-t 或 --to-code:指定目标字符集。-o 或 --output:指定输出文件。如果未指定,iconv 会将转换后的内容输出到标准输出。-l 或 --list:列出所有支持的字符集。-s 或 --silent:不显示警告信息。-c:忽略无法转换的字符。 1.13.4 常见使用案例 1.13.4.1 将文件从 UTF-8 转换为 ISO-8859-1 iconv -f UTF-8 -t ISO-8859-1 input.txt -o output.txt

这将把 input.txt 文件从 UTF-8 字符集转换为 ISO-8859-1 字符集,并将结果输出到 output.txt 文件中

1.13.4.2  列出所有支持的字符集 iconv -l

这将列出 iconv 支持的所有字符集

1.13.4.3 将文本从标准输入转换为 UTF-8 并输出到标准输出 echo "Some text" | iconv -f ISO-8859-1 -t UTF-8

这将把从标准输入读取的文本从 ISO-8859-1 转换为 UTF-8,并将结果输出到标准输出 

1.13.5 注意事项 字符集转换可能不是完全可逆的,特别是在涉及到不兼容的字符时。在转换字符集时,应确保目标字符集能够表示源字符集中的所有字符。否则,转换过程中可能会丢失数据或产生乱码。iconv 的支持取决于系统上的库和安装情况,不是所有字符集都在所有系统上可用。 1.14 dos2unix 1.14.1 介绍

dos2unix 是一个用于将 DOS/Windows 格式的文本文件转换为 Unix/Linux 格式的命令行工具

1.14.2 使用方法 dos2unix [选项] 文件... 1.14.3 参数详解 -n:仅显示哪些文件是 DOS/MAC 格式,而不进行转换。-c:仅显示转换了多少个文件。-v:显示详细的转换信息。-o:将转换后的内容输出到标准输出,而不修改原始文件。-s:静默模式,不显示任何消息。 1.14.4 常见使用案例 1.14.4.1 将文件从 DOS/Windows 格式转换为 Unix/Linux 格式 dos2unix filename.txt

这将把 filename.txt 文件从 DOS/Windows 格式转换为 Unix/Linux 格式 

1.14.4.2 显示哪些文件是 DOS/MAC 格式,但不进行转换 dos2unix -n file1.txt file2.txt

这将检查 file1.txt 和 file2.txt 是否是 DOS/MAC 格式,并显示结果,但不进行实际转换 

1.14.4.3 将转换后的内容输出到标准输出 dos2unix -o filename.txt

这将把 filename.txt 文件从 DOS/Windows 格式转换为 Unix/Linux 格式,并将转换后的内容输出到标准输出,而不是修改原始文件

1.14.5 注意事项 在转换文件之前,最好备份原始文件,以防转换过程中出现任何问题。dos2unix 工具只能处理文本文件。对于二进制文件或其他非文本文件,使用此工具可能会导致数据损坏。在处理大量文件或目录时,使用 -c 或 -v 选项可以帮助你跟踪转换的进度。 1.15 diff 1.15.1 介绍

diff 是一个在 Unix 和类 Unix 系统中常用的命令行工具,用于比较两个文件的内容差异

1.15.2 使用方法 diff [选项] 文件1 文件2 1.15.3 参数详解 -u 或 --unified:输出统一的格式,这是一种易于阅读的格式,显示两个文件之间的差异。-r 或 --recursive:递归地比较任何子目录中的文件。-i 或 --ignore-case:在比较时忽略大小写差异。-w 或 --ignore-all-space:忽略所有空格。-b 或 --ignore-space-change:忽略空格的变化。-B 或 --ignore-blank-lines:忽略空行。-c 或 --context:输出上下文差异格式,这种格式提供了更详细的上下文信息。 1.15.4 常见使用案例 1.15.4.1 比较两个文件并输出统一格式的差异 diff -u file1.txt file2.txt

这将输出 file1.txt 和 file2.txt 之间的差异,以统一的格式显示 

1.15.4.2 递归地比较两个目录中的文件 diff -r dir1 dir2

这将比较 dir1 和 dir2 两个目录及其子目录中的所有文件,并输出差异 

1.15.4.3 忽略大小写差异比较两个文件 diff -i file1.txt file2.txt

 这将忽略 file1.txt 和 file2.txt 中大小写的差异,只输出其他内容的差异

1.15.5 注意事项 diff 命令的输出通常是为了人类阅读而设计的,因此它不会告诉你怎么去修复差异,而是告诉你哪些行是新增的、哪些行被删除了、哪些行被改变了。如果你需要自动化的方式来处理差异,你可能会需要使用像 patch 这样的工具,它可以应用 diff 命令的输出来修改文件。当比较非常大的文件时,diff 命令可能会需要一些时间来完成。  1.16 vimdiff 1.16.1 介绍

vimdiff 是一个在 Vim 编辑器环境中比较和编辑文件差异的工具

1.16.2 使用方法 vimdiff [选项] 文件1 文件2 ... 1.16.3 参数详解 -O:水平分割窗口来显示差异。-c:在启动 vimdiff 时执行 Vim 命令。-R:反转比较,显示文件1相对于文件2的差异。-O:水平分割窗口来显示差异(与 -O 相同,但更常用)。-u:使用统一的差异格式。-y:使用并行比较模式。 1.16.4 常见使用案例 1.16.4.1 比较两个文件并水平分割窗口显示差异 vimdiff -O file1.txt file2.txt 1.16.4.2 在比较时执行 Vim 命令(例如,设置语法高亮) vimdiff -c 'set syntax=python' file1.py file2.py 1.16.5 在 Vimdiff 中操作 使用方向键在文件之间导航。按 do(或 :diffget)将当前行的更改从另一个文件复制到当前文件。按 dp(或 :diffput)将当前行的内容复制到另一个文件。在正常模式下,按 ] 跳到下一个差异,按 [ 跳到上一个差异。在插入模式下,按 Ctrl-] 或 Ctrl-[ 也可以导航差异。使用 :diffsplit 命令可以在当前窗口旁边打开一个新窗口,显示与当前文件比较的另一个文件。 1.16.6 注意事项 vimdiff 需要 Vim 编辑器已经安装在你的系统上。由于 vimdiff 是在 Vim 环境中运行的,因此它继承了 Vim 的所有功能和快捷键。对于不熟悉 Vim 的用户来说,学习 Vim 的基本操作可能会有些陡峭,但是一旦熟悉,你会发现它是一个非常强大和灵活的工具。 1.17 rev 1.17.1 介绍

rev 是一个 Unix/Linux 命令行工具,用于逐行反转文件的内容

1.17.2 使用方法 rev [选项] [文件...] 1.17.3 参数详解 -r 或 --reverse-complement:对每行执行反向互补操作,这在生物学序列分析中很有用。-n 或 --no-reverse:反转除了指定的行数之外的所有行。-s 或 --strict-reverse:仅反转包含非空白字符的行。 1.17.4 常见使用案例 1.17.4.1 反转文件的内容  rev filename.txt

这将输出 filename.txt 文件中每行字符的反转结果 

1.17.4.2 反转来自管道输入的内容 echo "Hello World" | rev

这将输出 "World Hello",即输入字符串中字符的反转 

1.17.4.3 反转文件中除了第一行之外的所有行 rev -n 1 filename.txt

这将反转 filename.txt 文件中除了第一行以外的所有行的字符顺序 

1.17.5 注意事项 rev 命令仅反转每行内的字符顺序,不会改变行的顺序。如果输入文件包含多字节字符(如 UTF-8 编码的字符),rev 命令可能会产生不正确的结果,因为它按字节而不是按字符反转内容。rev 命令通常用于简单的文本处理任务,对于复杂的文本转换或处理,可能需要使用更强大的文本处理工具,如 awk、sed 或 perl。 1.18 grep 1.18.1 介绍

grep 是一个强大的文本搜索工具,它使用正则表达式来搜索文本,并打印出匹配的行

1.18.2 使用方法 grep [选项] 模式 [文件...] 1.18.3 参数详解 -i:忽略大小写。-v:反转匹配,只显示不匹配模式的行。-r 或 -R:递归搜索子目录中的文件。-l:只输出包含匹配内容的文件名。-L:输出不包含匹配内容的文件名。-n:显示匹配行及其行号。-c:只输出匹配行的数量。-o:只输出匹配的部分,而不是整行。-e:指定多个模式。-f:从文件中读取模式。-A:显示匹配行后的几行。-B:显示匹配行前的几行。-C 或 --context:显示匹配行及其前后几行。 1.18.4 常见使用案例 1.18.4.1 在文件中搜索特定文本 grep "text" filename.txt 1.18.4.2 忽略大小写搜索 grep -i "text" filename.txt 1.18.4.3 显示匹配行的行号 grep -n "text" filename.txt 1.18.4.4 递归搜索目录中的文件 grep -r "text" directory/ 1.18.4.5 只输出包含匹配内容的文件名 grep -l "text" *.txt 1.18.5 注意事项 grep 使用正则表达式作为搜索模式,因此你可以使用复杂的模式来匹配文本。grep 的速度非常快,特别是在处理大文件时,因为它使用了一种叫做 Aho-Corasick 算法的高效字符串匹配算法。grep 可以与其他命令结合使用,通过管道将输出传递给 grep 进行过滤。 1.19 join 1.19.1 介绍

join 是 Unix/Linux 命令行中的一个工具,用于将两个或多个文件的行按照某个共同字段连接起来

1.19.2 使用方法 join [选项] 文件1 文件2 1.19.3 参数详解 -1:指定文件1中的连接字段。-2:指定文件2中的连接字段。-a:执行外连接。如果指定 -a 1,则包含文件1中所有未匹配的行;如果指定 -a 2,则包含文件2中所有未匹配的行。-o:指定输出格式。-t:指定字段分隔符。-v:执行反连接,只显示不匹配的行。-e:指定空字段的默认值。 1.19.4 常见使用案例 1.19.4.1 内连接两个文件,基于第一个字段 join file1.txt file2.txt

假设 file1.txt 和 file2.txt 都是已排序的,并且有一个共同的第一个字段 

1.19.4.2 执行左连接,包含文件1中所有未匹配的行 join -a 1 file1.txt file2.txt 1.19.4.3 指定字段分隔符为逗号,并执行外连接 join -t, -a 1 -a 2 file1.csv file2.csv

假设 file1.csv 和 file2.csv 是以逗号分隔的 CSV 文件

1.19.5 注意事项 join 命令要求输入文件已经按照连接字段进行了排序。连接字段在默认情况下是第一个字段,但可以通过 -1 和 -2 选项进行指定。join 命令仅适用于两个文件之间的连接。如果你需要连接多个文件,可能需要使用其他工具,如 awk。如果两个文件中有重复的行,join 命令会生成重复的输出行。  1.20 tr 1.20.1 介绍

tr 是 Unix/Linux 命令行中的一个工具,用于转换或删除文本文件中的字符

1.20.2 使用方法 tr [选项] SET1 [SET2] 1.20.3 参数详解 -c:补集操作,匹配 SET1 之外的字符。-d:删除 SET1 中的字符。-s:压缩 SET1 中重复的字符为单个字符。 1.20.4 常见使用案例 1.20.4.1 将文本中的所有小写字母转换为大写字母 echo "hello world" | tr '[:lower:]' '[:upper:]'

输出:

HELLO WORLD 1.20.4.2 删除文本中的所有数字 echo "hello123world456" | tr -d '0-9'

输出:

helloworld 1.20.4.3 压缩文本中连续的空格为一个空格 echo "This is a test" | tr -s ' '

输出:

This is a test 1.20.5 注意事项 tr 命令通过字符集进行操作,SET1 和 SET2 的字符数量必须相同,或者 SET2 可以为空。如果 SET2 为空,SET1 中的字符将被删除。如果 SET2 的字符数量少于 SET1,则 SET1 中的多余字符将被转换为 SET2 中的最后一个字符。字符集可以使用方括号 [ ] 来表示,例如 [:alpha:] 表示所有字母,[:digit:] 表示所有数字。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有