文本处理工具

时间:2024-07-17 13:48:57

cut

可以从文件中的每一行去进行分割,选择输出想要的内容
参数:

  • -f:选择第几列
  • -d:分割符
  • -c:按字符进行分割
例子

有一个a.txt文本
在这里插入图片描述

使用cut

cat a.txt | cut -d " " -f 2

输出:
在这里插入图片描述

解析
-d " " 表示以空格分割,a.txt中则会被分割成两列
-f 2 表示选择第二列
如果想选择多个列,可以,隔开, -f 2,3,4
如果想选择2列到4列的内容,可以使用 -f 2-4
如果想选择2列之后的全部,可以使用 -f 2-

awk

和cut类似,只是功能更加的强大,默认以空格分开,可以对选择的部分做处理。

参数:

  • -F:分隔符
  • -v:可以引入一个变量
例子

有一个a.txt文本
在这里插入图片描述

使用awk

 cat a.txt | awk  '/^hello/ {print $2","$1}'

输出结果:
在这里插入图片描述
解析:
‘/^hello/ {print $2","$1}’:它是分成两部分的,第一部分是/^hello/,是一个正则表达式,可以帅选想要的内容,可以省略的。第二部分是{print $2",“$1},print是输出,”,"是输出选择的两列内容中间以什么分割。这两部分要写在’ '单引号中,因为awk是默认空格分割的,所以没有指定分割符了,不然可以使用-F指定分割符。

添加字符串

可以在开头和结尾添加字符串,使用BEGIN{print “内容”}和END{print “内容”}

cat a.txt | awk 'BEGIN{print "begin"} /^hello/ {print $2","$1} END{print "end"}'

运行结果:
在这里插入图片描述

可以对列加减

准备一个a.txt,第三列是数字
在这里插入图片描述

 cat a.txt | awk  '{print $3 + 1}'

运行结果:
在这里插入图片描述

使用自定义变量
cat a.txt | awk -v i=1 '{print $3 + i}'

使用-v参数可以引入自定义变量,传递给’'部分

内置变量

awk中默认自带的变量

  • FILENAME:文件名
  • NR:已读行号
  • NF:列数

查询文件中的空行行号:
准备一个a.txt文件
在这里插入图片描述
awk '/^$/ {print NR}' a.txt
运行结果:
在这里插入图片描述