做像淘宝这样的购物网站要多少钱,Wordpress做手机网页,合肥浦发建设集团网站,石家庄建筑网Linux awk命令介绍
awk是一个强大的文本分析工具#xff0c;其本质上是一个数据驱动式的脚本语言#xff0c;用于处理文本#xff0c;并对文本进行诸如生成报告等各种操作。这是一个强大的Linux命令行程序#xff0c;用于处理和分析文本文件#xff0c;特别是那些对文本格…Linux awk命令介绍
awk是一个强大的文本分析工具其本质上是一个数据驱动式的脚本语言用于处理文本并对文本进行诸如生成报告等各种操作。这是一个强大的Linux命令行程序用于处理和分析文本文件特别是那些对文本格式有严格要求或者表格化的文件。
Linux awk命令适用的Linux版本
awk命令在大多数Linux版本中都可使用。对于某些可能没有预装该命令的Linux发行版可通过以下的安装命令进行安装
Debian/Ubuntu系统下使用以下命令安装
[linuxbashcommandnotfound.cn ~]$ sudo apt-get install gawkCentOS7或RHLE7可以使用yum进行安装
[linuxbashcommandnotfound.cn ~]$ sudo yum install gawkCentOS8或RHLE8可以使用dnf来安装
[linuxbashcommandnotfound.cn ~]$ sudo dnf install gawkLinux awk命令的基本语法
awk命令的基本语法如下
awk [options] script varvalue file此处options是命令选项script’表示awk程序varvalue设定awk程序中的变量而file则为输入的文件名称。
Linux awk命令的常用选项或参数说明
awk命令的常用选项
选项解释-f file从文件file中读取awk脚本-F fs设置输入字段分隔符等同于BEGIN{FS“fs”}-v varvalue设置变量-m[fr] mf设置字符串最大数目
Linux awk命令的实例
实例1打印所有行
这个例子基本没什么用但它是一个很好的awk语法介绍。
[linuxbashcommandnotfound.cn ~]$ awk { print } file实例2打印特定字段
我们可以使用awk命令来打印文本的特定字段²。
[linuxbashcommandnotfound.cn ~]$ awk { print $1 } file实例3打印文件的行数
这个例子展示了如何使用awk命令来打印一个文件的行数。
[linuxbashcommandnotfound.cn ~]$ awk END { print NR } file实例4使用分隔符
这个例子展示了如何使用-F选项来指定输入字段的分隔符。
[linuxbashcommandnotfound.cn ~]$ awk -F: { print $1 } /etc/passwd实例5使用多个命令
这个例子展示了如何在一个awk命令中使用多个命令。
[linuxbashcommandnotfound.cn ~]$ awk /pattern1/ { action1 } /pattern2/ { action2 } file实例6使用变量
这个例子展示了如何在awk命令中使用变量。
[linuxbashcommandnotfound.cn ~]$ awk -v varvalue BEGIN { print var }实例7使用内建变量
这个例子展示了如何在awk命令中使用内建变量。
[linuxbashcommandnotfound.cn ~]$ awk { print NR, $0 } file实例8使用条件语句
这个例子展示了如何在awk命令中使用条件语句。
[linuxbashcommandnotfound.cn ~]$ awk { if ($1 max) max $1 } END { print max } file实例9使用循环语句
这个例子展示了如何在awk命令中使用循环语句。
[linuxbashcommandnotfound.cn ~]$ awk BEGIN { for (i 1; i 5; i) print i }实例10使用函数
这个例子展示了如何在awk命令中使用函数。
[linuxbashcommandnotfound.cn ~]$ awk { print length($0) } file实例11使用数组
这个例子展示了如何在awk命令中使用数组。
[linuxbashcommandnotfound.cn ~]$ awk { arr[$1] } END { for (i in arr) print i, arr[i] } file实例12使用正则表达式
这个例子展示了如何在awk命令中使用正则表达式。
[linuxbashcommandnotfound.cn ~]$ awk /pattern/ { print $0 } file实例13使用BEGIN和END块
这个例子展示了如何在awk命令中使用BEGIN和END块。
[linuxbashcommandnotfound.cn ~]$ awk BEGIN { print Start } { print $0 } END { print End } file实例14使用内建函数
这个例子展示了如何在awk命令中使用内建函数。
[linuxbashcommandnotfound.cn ~]$ awk { print substr($0, 1, 5) } file实例15使用多个文件
这个例子展示了如何在awk命令中处理多个文件。
[linuxbashcommandnotfound.cn ~]$ awk { print FILENAME, $0 } file1 file2Linux awk命令的注意事项
注意分隔符的正确选择错选分隔符可能会导致漏取或者取多字段注意排版问题awk命令的输出直接与输入文件的排版有关如果遇到bash: awk: command not found你可能需要安装awk。具体安装方法参见本文的“Linux awk命令适用的Linux版本”部分。
Linux awk相关命令
sed命令 - sed命令也是一种处理文本文件的命令比如插入、删除、替换文本中的字符串等。 grep命令 - grep命令用于在文本文件中搜索包含指定规则的行然后返回结果。 sort命令 - sort命令用于排序文本文件中的行。 cut命令 - cut命令用于从文件的每行剪切字节、字符和字段并将这些字节、字符和字段输出。 paste命令 - paste命令用于合并文件的行。 join命令 - join命令用于在一行中将两个文件的字段结合起来。 uniq命令 - uniq命令用于在排序的文件中报告或省略重复行。 cat命令 - cat命令用于串联和打印文件。 touch命令 - touch命令用于修改文件或目录的时间戳如果文件不存在会创建一个新的空文件。 grep命令 - grep命令用于在文本中搜索匹配的字符模式。
更多详细内容可以参考 linux入门学习教程 - Linux入门自学网 Linux awk命令详解一种对文本文件进行分析、过滤、转换的处理工具