awk 是一种文本处理工具,经常用于对 Linux 系统中的文本文件进行处理。
1、awk 查找指定文本
awk '/orange/ {print}' file.txt
这个命令将在 file.txt 文件中查找包含orange 的行,并将这些匹配的内容打印出来。
awk '/pattern/ {print NR ":" $0}' file.txt
这个命令将在file.txt 文件中查找包含 pattern 的行,并将这些行号以及匹配的内容打印出来。
注意:“:”冒号是显示样式,显示结果为匹配的行号:内容。NR
是 awk
内置的行号变量,表示当前处理的行号。
2、awk 分隔符来处理文件
awk -F"," '{print $1}' file.txt
这个命令将在 file.txt 文件中以逗号为分隔符,输出每行的第一个字段。
3、awk 进行计算
awk '{sum+=$1} END {print sum}' file.txt
这个命令将对 file.txt 文件中的第一列进行求和,并输出总和。
4、awk 进行条件判断
awk '{if ($1 > 50) print $0}' file.txt
这个命令将在 file.txt 文件中找到第一列大于 50 的行,并打印出整行内容。
5、awk 进行格式化输出
awk '{printf("%-10s %-5s\n", $1, $2)}' file.txt
awk
读取 file.txt
文件中的每一行,并使用 printf
函数按照指定格式输出每行的第1和第2个字段,字段之间以空格隔开。%-10s
指定第1个字段占据10个字符的宽度,并且左对齐;%-5s
指定第2个字段占据5个字符的宽度,并且左对齐。所以输出结果中,第1列的字符宽度为10,第2列的字符宽度为5,并且左对齐。
6、awk对文件进行分组统计
awk '{ count[$1]++ } END { for (word in count) { print word, count[word] } }' file.txt
这个命令将对 file.txt 文件中的第一列进行分组统计,输出每个单词出现的次数。
7、awk从文件中查找最大值和最小值
awk 'BEGIN { max=0; min=99999 } { if ($1>max) max=$1; if ($1<min) min=$1 } END { print "Max:", max, "Min:", min }' file.txt
这个命令将在 file.txt 文件中查找第一列的最大值和最小值,并输出结果。
8、awk 进行匹配和替换
awk '{ sub(/old_pattern/, "new_pattern", $0); print }' file.txt
这个命令将在 file.txt 文件中将第一次匹配到的 old_pattern 替换为 new_pattern,并将替换后的结果打印出来。
注意:该操作不会改变源文件内容
9、awk 进行排列和排序
awk '{ print length($0), $0 }' file.txt | sort -n | cut -d' ' -f2-
这个命令将对 file.txt 文件中的每行字符串按照长度进行排序,并将排序后的结果输出。
cut -d' ' -f2-
命令的含义如下:文章来源:https://www.toymoban.com/news/detail-442321.html
-
cut
命令用于对文本文件进行分割处理,以提取所需的字段。 -
-d' '
选项指定字段分隔符为空格,即将文本按照空格分割为多个字段。 -
-f2-
选项指定提取从第2个字段开始到行末的所有字段内容。其中,2-
表示从第2个字段开始提取,而没有指定结束字段,则默认提取到行末。
sort -n
命令的含义如下:文章来源地址https://www.toymoban.com/news/detail-442321.html
-
sort
命令用于对文本文件进行排序。 -
-n
选项指定将文本文件按照数字大小进行升序排序,而不是按照字符的字典顺序排序。
到了这里,关于Linux运维常用awk命令使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!