1.Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
当你执行who命令时:(who用来查询当前系统有哪些用户正在使用)

想要截取每行的第三列信息:

2.Linux中awk命令具有查找、截取的用法
语法:awk options 'pattern {action}' file
options:是一些选项,用于控制awk的行为。pattern:是用于匹配输入数据的模式。如果省略,则awk将对所有行进行操作。{action}:是在匹配到模式的行上执行的动作。如果省略,则默认动作是打印整行。
options 常用参数说明:
-
-F <分隔符>或--field-separator=<分隔符>: 指定输入字段的分隔符,默认是空格。使用这个选项可以指定不同于默认分隔符的字段分隔符。 -
-v <变量名>=<值>: 设置awk内部的变量值。可以使用该选项将外部值传递给awk脚本中的变量。
练习:
test.txt
No Mark Percent
01 69 91
02 71 87
03 68 98
打印整个文件信息:awk '{print}' test.txt

打印特定列:awk '{print $1, $2}' test.txt

使用分隔符指定列:awk -F',' '{print $1, $2}' test.txt
准备数据:
No,Mark,Percent
01,69,91
02,71,87
03,68,98
打印行数:awk '{print NR, $0}' test.txt

NR(Number of Records)表示当前记录的行号。awk 处理文件时,会逐行读取文件中的内容。NR 变量用于跟踪当前正在处理的是第几行。从文件的第一行开始,NR 的值依次递增。
$0 表示当前行的整个内容。awk 在处理每一行时,会将整行的文本存储在 $0 变量中。换句话说,$0 包含了当前行的全部数据。
使用示例:问题:获取ip地址的命令,只输出ip地址 ip addr|grep 'inet'|awk '{print $2}'|cut -d/ -f1
ip addr用于查询ip
grep 'inet'用于匹配ip地址
awk '{print $2}'用于输出第二个字段,默认以空格分隔
cut -d/ -f1 用于以/分隔ip和掩码截取ip地址

Linux cut与awk命令详解

118

被折叠的 条评论
为什么被折叠?



