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地址