awk文本处理工具

awk详细

awk [options] ‘commands‘ files

-F 定义字段分隔符,默认的分隔符是连续的空格或制表符,使用-F参数定义间隔符号,可以使用多个不同的符号做分隔符 -F[:/]

用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域

  awk -F:(:是行内分隔符) “{print $1,$2}” 文件名    #输出匹配的第一段和第二段的内容

NF变量表示当前记录的字段数

  awk -F: “{print $1,NF}” 文件名    输出匹配第一段,和每行的字段数

  awk -F: “{print $1,$NF}” 文件名  输出匹配第一段和最后一段

-v 定义变量并赋值 也可以借用次方式从shell变量中引入

  count = 7

  awk -v x=$count -F: “$1>x{print $3}” 文件名

行定址

NR表示awk读入的行数

  awk -F: “{print $1,NR}” 文件名

  awk -F: “NR==1{print $1,NR}” 文件名  只处理第一行

FNR表示读入行所在文件中的行数

# awk ‘{print NR,FNR,$1}‘ file1  file2
  1 1 aaaaa
  2 2 bbbbb
  3 3 cccccc
  4 1 ddddd
    5 2 eeeee
    6 3 ffffffff

正则定址

正则需要用//包围起来
^ 行首
$ 行尾
. 除了换行符以外的任意单个字符
* 前导字符的零个或多个
.* 所有字符
[] 字符组内的任一字符
[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
  ^[^] 非字符组内的字符开头的行
[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
\> 单词尾

awk -F: “/^root/{print $3}” 文件名

awk -F: “$1~/^root/{print $3}” 文件名   以第一个字段来匹配

awk -F: “$1=="root"{print $3}” 文件名   以第一个字段来匹配

awk -F: “$1>2{print $3}” 文件名   以第一个字段来匹配

补充

111111111
222222222
333333333
444444444
555555555
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
999999999
999999999
999999999
999999999
999999999
999999999
999999999
aaaaaaaaaa
6666666666
7777777777
8888888888
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
9999999999
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

cat a.txt |sort|uniq  -c  #sort排序、uniq去重、-c查看去重了多少行

cut

d指定分隔符

f指定取第几部分

cat a.txt |cut -d: -f1

cat a.txt |cut -d: -f1,3   取第三部分

du -sh /boot/ 统计文件大小

find /boot   -type f  查找/boot目录下的普通文件

find /boot   -name *.txt  查找/boot目录下的 .txt后缀的文件

find /boot  -size +30M   查找大于30M的文件

find /boot  -size +10M -size -30M   查找大于10M小于30M的文件

grep -rl "root" /test   递归查找/test下包含root的文件名,输出文件名

时间: 2024-10-11 17:12:30

awk文本处理工具的相关文章

linux基础--awk文本分析工具详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Linux 之 awk文本分析工具

AWK是一种处理文本文件的语言,是一个强大的文本分析工具.Linux环境中自带. awk调用方法 命令行 awk [-F field-separator] 'commands' input-file(s) shell脚本方式 #!/bin/sh awk脚本方式 `#!/bin/awk awk -f 脚本文件 待处理文件 原文地址:https://www.cnblogs.com/yoyoyang/p/11822965.html

正则表达式及Linux三大文本处理工具

一.正则表达式 1.匹配字符的类型 [a-z]:小写字母 [A-Z]:大写字母 [a-Z]:小或大写字母 [0-9]:数字 [a-zA-Z0-9]:表示匹配一个为字母或数字的字符 . :匹配1个任意字符,空格除外 [0-f]:16进制数 abc | def:abc或def a (bc | de) f:abcf 或 adef \<:单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词 \>:单词尾 [^表达式]:除小写字母以外的所有字符,如此类推. 2.后跟以下符号控制匹配的数量 此类

Linux文本处理工具AWK使用解析

在linux系统上有三大文本处理工具分别是:grep,sed,awk,这次主要来看看awk. awk  option  'pattern'  file -F    指定分隔符: -v     申明自定义变量: 查看当前系统上,用户名和用户shell,输出分隔符为~. # awk -F: 'BEGIN{OFS="~";print "UserName   Shell"}{print $1,$7}END{print "================end===

shell之三大文本处理工具grep、sed及awk

grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更强大而已,且已独立成一种语言来介绍. grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多: sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed: awk:报告生成器,格式化以后显示.如果对处

三大文本处理工具grep、sed及awk的简单介绍

grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更强大而已,且已独立成一种语言来介绍. grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多: sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed: awk:报告生成器,格式化以后显示.如果对处

Linux命令:文本处理工具awk详解一

awk命令简介: awk是一个强大的文本分析工具,通常,awk是以文件的每一行,为处理单位的.awk每接收文件的一行,然后执行相应的命令,来处理文本.  1.命令格式: awk 'pattern {action}'{filenames} 其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所 执行的一系列命令.花括号({})不需要在程序中始终出现,但它们用于根据特定的 模式对一系列指令进行分组. pattern就是要表示的正则表达式,用斜杠括起来. 调用a

文本处理工具之:grep sed awk

正则就是用一些具有特殊含义的符号组合一起来描述字符或字符串的方法.在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep.sed.awk,它们三者均可以解释正则 一:grep 参数 -n :显示行号 -o :只显示匹配的内容 -q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容 -l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc

9-13 文本处理工具sed及awk的用法

文本编辑三剑客:grep, sed, awk    grep: 文本搜索工具:egrep, fgrep    sed: stream editor, 流编辑器:    awk(gawk):文本格式化工具,报告生成器 sed命令: 基本正则表达式的元字符:     字符匹配:            .: 匹配任意单个字符:            []:匹配指定范围内的任意单个字符:            [^]:匹配指定范围内的任意单个字符: [:lower:]:所有小写字母 [:upper:]: