感谢支持
我们一直在努力

Linux基础知识:shell与awk

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当前输入文件名

赞(0) 打赏
转载请注明出处:服务器评测 » Linux基础知识:shell与awk
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏