系统操作和维护
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。