Grep是处理文本文件的最强大的工具之一。
语法:
grep [options] pattern [files]
一些有用的 grep 选项:
grep -i "linux" long.txt
#等同 cat long.txt | grep -i "linux"
您可以使用-c标志计算与给定条件匹配的次数:
grep -c "linux" long.txt
2
awk 命令允许根据指定的条件和操作进行更高级的文本处理。它逐行操作,将每行分割成字段。
语法:
awk 'pattern { action }' input-file
例子:
awk '/error/ {print $1}' /var/log/syslog
这将打印任何包含 “error” 的行的第一个字段。awk 还可以使用 NR (行数)和 NF (字段数)等内置变量。
[root@xx]# cat linux.txt
Linux
Linux
linux1 linux3 linux6 linux8
Linux9
[root@xx]# awk "/lin/ {print NR}" linux.txt
3
[root@xx]# awk "/lin/ {print NF}" linux.txt
4
awk 高级功能包括:
awk 的功能非常强大,因为它是一种独立的编程语言,作为 Linux 命令,它可以给你很多控制权。详细学习请参考 Linux awk 命令 | 菜鸟教程
sed 命令允许过滤和转换文本。它可以执行搜索/替换、删除、移位等操作。不过,与 awk 不同的是,sed 是为按指令逐行编辑而设计的。
语法:
sed options 'commands' input-file
例子:
sed 's/foo/bar/' file.txt
这会将 file.txt 中的 “foo” 替换为 “bar”。
一些有用的 sed 命令:
sed 非常适合批量查找/替换、选择性删除行和其他文本流编辑操作。
sed 's/Linux/linux/' linux.txt > linux.txt2
当你处理大量文本或数据,甚至是从其他命令输出的大量内容时,排序是使事情易于管理的好方法。sort 命令将按字母或数字对文本文件的行进行排序。
语法:
sort [options] [file]
有用的 sort 选项:
例子:
sort -n grades.txt
这将对 grades.txt 中的内容进行数字排序。排序便于对文件内容进行排序,使输出或分析更具可读性。
sort -k 是 sort 命令的一个选项,用于指定要排序的字段(列)。
语法格式为:sort -k <起始位置>[,<结束位置>]
其中 <起始位置> 指定了要排序的字段起始位置,<结束位置>(可选)指定了字段的结束位置。字段起始位置和结束位置都是以 1 开始的数字。
以下是一些示例来帮助说明 -k 选项的用法:
通过使用 -k 选项,你可以指定要排序的字段范围,还可以使用额外的选项来控制排序方式(如按照数值大小或逆序排序)。
[root@xx]# cat linux.txt
test 30
Hello 95
Linux 85
[root@xx]# sort -k 2 linux.txt
test 30
Linux 85
Hello 95
uniq 命令可从输入中过滤重复的相邻行。该命令通常与排序命令一起使用。
语法:
uniq [options] [input]
选项:
例子:
sort data.txt | uniq
这将删除排序后 data.txt 中的任何重复行。uniq 可让你控制重复文本的过滤。
diff 命令逐行比较两个文件并打印差异。它通常用于显示文件版本之间的变化。语法
语法:
diff [options] file1 file2
选项:
diff original.txt updated.txt
这将输出 original.txt 和 updated.txt 之间的不同行。 diff 对于比较文本文件和源代码的修订版本非常有用。
wc (字数统计)命令打印文件中的行数、字数和字节数。
语法:
wc [options] [file]
选项:
wc report.txt
该命令将打印 report.txt 中的行数、字数和字节数。