Linux常用命令(16)—awk命令(有相关截图)

写在前面:

最近在学习Linux命令,记录一下学习Linux常用命令的过程,方便以后复习。仅供参考,若有不当的地方,恳请指正。如果对你有帮助,欢迎点赞,关注,收藏,评论,谢谢。

awk命令 用于模式扫描和文本/数据提取

awk 是一种处理文本文件的语言,是一个强大的文本分析工具。

awk 通过提供编程语言的功能,如变量、数学运算、字符串处理等,使得对文本文件的分析和操作变得非常灵活和高效。

之所以叫 awk 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

1. 基本语法

awk options 'pattern {action}' file

选项参数说明:

options:是一些选项,用于控制 awk 的行为。

pattern:是用于匹配输入数据的模式。如果省略,则 awk 将对所有行进行操作。

{action}:是在匹配到模式的行上执行的动作。如果省略,则默认动作是打印整行。

options 参数说明:

-F <分隔符> 或 --field-separator=<分隔符>: 指定输入字段的分隔符,默认是空格。使用这个选项可以指定不同于默认分隔符的字段分隔符。

-v <变量名>=<值>: 设置 awk 内部的变量值。可以使用该选项将外部值传递给 awk 脚本中的变量。

-f <脚本文件>: 指定一个包含 awk 脚本的文件。这样可以在文件中编写较大的 awk 脚本,然后通过 -f 选项将其加载。

-v 或 --version: 显示 awk 的版本信息。

-h 或 --help: 显示 awk 的帮助信息,包括选项和用法示例。

2. 基础打印和字段操作

2.1 打印整行

如:awk '{print}'  02.txt。这个命令和cat 02.txt的效果一样。但是,当你需要执行更复杂的文本处理任务时,awk 就会变得非常有用。

2.2 打印特定列

如:awk '{print $1,$2}' 02.txt,打印每一行的第一列和第二列。

(注意每两个字段之间都有一个空格)

2.3 使用分隔符指定列

如:awk -F',' '{print $1, $2}' 02.txt,将‘,’换成 空格。

3. 变量和计算

3.1 计算列的总和

如:awk '{sum += $1} END {print sum}'  02.txt。

3.2 条件计算和打印

如:awk '$1 > 10 { print $1 }' 1.txt。

4.条件语句和循环

4.1 if-else条件语句

如:awk '{ if ($1 > 10) print "Number is greater than 10"; else print "Number is 10 or less" }' 1.txt。

4.2  for循环遍历字段

如:awk '{ for(i=1; i<=NF; i++) print $i }' 1.txt。

遍历每一行的每个字段并打印它们。

5. 内置函数和正则表达式

5.1 使用内置函数打印行长度

如:awk '{ print length }' 1.txt。

打印文件1.txt中每行的字符数。

5.2 使用正则表达式匹配并打印

awk '/pattern/ {print NR, $0}' file

'/pattern/':这是一个模式匹配操作。awk 会逐行读取 file 的内容,并且只有当某行包含 pattern 这个模式时,才会执行大括号 {} 内的动作。这里的 pattern 可以是任何正则表达式,用于匹配文本。

如:awk '/1,2,3/ {print NR, $0}' 02.txt。

6. 文件操作和其他高级功能

6.1 从其他命令读取数据

如:echo -e "a 1\nb 2" | awk '{ print $2, $1 }'。

6.2 多文件处理

如:awk 'FNR==1 {print FNR, " ", $0}' 1.txt 3.txt。

打印file1和file2的第一个文件记录号(FNR)和对应的整行内容。

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值