shell与awk

本文深入解析Shell中的sort、uniq、join与awk命令的使用方法及参数,包括如何去除重复行、改变分割符、按数字大小排序、连接文本记录等,并通过实例展示这些命令的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sort命令,参数-u去掉结果中得重复行,-t,改变分割符,-n根据数字大小排序,-k制定排序的域.eg: sort -t: -k3n GARGO.db #根据第三域的数字大小排序

sort -t: -k3nr GARGO.db #根据第三域的数字大小排序,将排序结果逆向显示

uniq命令 -c打印每行在文本中重复出现的次数,-d只显示重复记录,每个重复记录只出现一次,-u只显示没有重复的记录。uniq去除的重复行必须是连续的重复行,中间没有夹杂任何文本。

join命令,文本记录的连接,eg:join -t: -o1.1 2.1 2.2 -1 3 -2 1 text1 text2用第一个文本的第三个域连接第二个文本的第一个域,并显示第一个文本第一个域,第二个文本第一个域和第二个域,分隔符为:

测试:

test expression

或者 [ expression ]

用$?判断推出状态,若为0表示命令运行成功

num1 -eq num2 如果num1等于num2,测试结果为0

num1 -ge num2 如果num1大于等于num2,测试结果为0

还有(-gt 大于,-le小于等于,-lt小于,-ne不等于) 、

string测试字符串是否不为空

-n string测试字符串是否不为空

-z string测试字符串是否为空

文本操作符

-d file测试file是否为目录

-e file测试file是否存在

-f file测试file是否为普通文件

-r file测试file是否进程可读

-s file测试长度是否不为0

-x file可执行,-w file可写 -L file符号化链接

逻辑运算符:

!expression如果expression为假,则测试结果为真

expression1 -a expression2 同时为真,则测试结果为真

expression1 -o expression2 有一个为真,则测试结果为真

字符串处理:

计算长度${#string}或者expr length $string

expr index $string $substring子串索引

expr match $string $substring 字符串匹配,不配不上返回0

${string:position:length}或者expr substr $string $position $length 抽取字符串(前面坐标0开始,后面从1开始)

${string#substring}删除开头处与substring匹配的最短子串

${string##substring}删除开头处与substring匹配的最长子串

${string%substring}删除结尾处与substring匹配的最短子串

${string%%substring}删除结尾处与substring匹配的最长子串

${string/substring/replacement} 替换第一次与substring匹配的字符串

${string//substring/replacement}替换所有与substring匹配的字符串


awk

awk 'BEGIN {FS=":"} {if($1==2&&$2==2) print $0}' /etc/passwd 用:分割passwd,输出第一个域或者第二个域等于2时的行信息

awk 'BEGIN {FS=","}{print NF,NR,$0} END {print FILENAME}' sturecord #NF当前记录中得域数量,NR当前记录数,FILENAME当前输入文件名


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值