陈奇网络工作室

正则表达式工具(下)

系统操作和维护

awk

1.1.awk的常见用法

通常,awk使用的命令格式如下,其中单引号和大括号“{}”用于设置数据的处理动作。Awk可以直接或通过“-f”读取脚本处理目标文件。默认情况下,字段的分隔符是空格或制表符。Awk执行结果可以通过打印功能打印并显示现场数据。在使用awk命令的过程中,可以使用逻辑运算符"",表示“和”|| "表示“或”,"!”表示“否”;还可以进行简单的数学运算,比如,-、*、/、% %%u3001^分别进行加、减、乘、除、余数、幂等运算。

Awk选项\ \ '模式或条件{编辑指令} \ \ '文件1文件2 //过滤并输出文件字符条件的内容。

Awk -f脚本文件file 1 file 2 //从脚本中调用编辑指令过滤输出内容。

2个内置变量

FS:指定每行文本的字段分隔符,默认为空格或制表位。

NF:当前处理的行中的字段数。

NR:当前处理行的行号(序数)。

$0:当前处理行的整行内容。

$n:当前处理行的第n个字段(第n列)。

FILENAME:要处理的文件名。

RS:数据记录分隔,默认为\ \\\\n,即每行一条记录。

3个使用示例

1)逐行输出文本。

awk \ \ ' { print } \ \ ' test.txt//outputs所有内容,相当于cattest.txt

awk \ \ ' { print $ 0 } \ \ ' test.txt//outputs一切,相当于cattest.txt

Awk \ \' NR==1,NR==3 { print } \ \ ' test.txt//output第1~3行的内容。

awk \ \ '(NR=1)(NR=3){ print } \ \ ' test.txt//output第1~3行的内容。

awk \ \ ' NR==1 | | NR==3 { print } \ \ ' test.txt//Output第1行和第3行的内容。

awk \ \ '(NR % 2)==1 { print } \ \ ' test.txt//Output所有奇数行的内容。

awk \ \ '(NR % 2)==0 { print } \ \ \ ' test.txt//Output所有偶数行的内容。

awk \ \ '/root/{ print } \ \ '/etc/passwd//以root开头的输出行。

awk \ \ '/nologin $/{ print } \ \ '/etc/passwd//以nologin结尾的输出行。

awk \ \ \ ' BEGIN { x=0 };/\ \ \ \/bin \ \ \ \/bash $/{ x };END {print x}\\\' /etc/passwd

//统计以/bin/bash结尾的行数,相当于grep-c '/bin/bash $ '/etc/passwdawk。

\ \ \ ' BEGIN { RS=' ' };END { print NR } \ \ \ '/etc/squid/squid . conf

//统计由空行分隔的文本段落数。

2)按字段输出文本

awk \ \ ' { print $ 3 } \ \ ' test.txt//Output每行的第三个字段(用空格或制表位分隔)。

Awk \ \' {print $1,$ 3 } \ \ ' test.txt//Output每行的第一个和第三个字段。

awk-f '' \ \ ' $ 2==' { print } \ \ '/etc/shadow//输出密码为空的用户的影子记录。

awk \ \ \ ' BEGIN { FS='' };$2==''{print}\\\' /etc/shadow

//输出密码为空的用户的影子记录。

awk-F '' \ \ \ ' $ 7 ~ '/bash ' { print $ 1 } \ \ \ '/etc/passwd

//输出第一个字段的行,用冒号分隔,第七个字段包含/bash。

awk \ \ \ '($ 1 ~ ' NFS ')(NF==8){ print $ 1,$2}\\\' /etc/services

//输出8场的行的第1场和第2场,第1场nfs。

awk -F '' \\\'($7!='/bin/bash')($7!='/sbin/nologin '){ print } \ \ \ '/etc/passwd

//输出第7个字段既不是/bin/bash也不是/sbin/nologin的所有行。

3)通过管道和双引号调用Shell命令。

awk-F:\ \ \ '/bash $/{ print | ' WC-l ' } \ \ \ '/etc/passwd

//调用wc -l命令统计使用bash的用户数量,相当于grep -c 'bash$' /etc/passwd。

awk \ \ \ ' BEGIN { while(' w ' | getline)n;{print n-2}}\\\ '

//调用w命令,用它来统计在线人数。

awk \ \ \ ' BEGIN { ' hostname ' | getline;打印$0}\\\ '

//调用hostname,输出当前主机名。

分类

Sort是以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型进行排序。比如数据和人物的博弈就不一样。sort命令的语法是“sort [option] parameter”,常用的选项有以下几种。

?-f:忽略大小写;

?-b:忽略每行前的空格;

?-M:按月排序;

?-n:按数字排序;

?-r:反向排序;

?-u:相当于uniq,表示只显示一行相同的数据;

?-t:指定分隔符,默认用[Tab]键分隔。

?-o输出文件:将排序后的结果导出到指定文件;

?-k:指定排序区域。

uniq

在Linux系统中,Uniq工具通常与sort命令结合使用,以报告或忽略文件中的重复行。具体命令语法格式为:uniq [option]参数。常用的选项包括以下几种。

-c:计数;

-d:只显示重复的行;

-u:只显示出现过一次的行;

以下面的文字为例

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3