统计文本中某值字段数量-cat-awk-sort-uniq-c
来源:互联网 发布:linux mysql 源码安装 编辑:程序博客网 时间:2024/05/16 04:49
一、取出/etc/passwd文件中shell出现的次数
问题:下面是一个/etc/passwd文件的部分内容。题目要求取出shell并统计次数,shell是指后面的/bin/bash,/sbin/nologin等,如下面/bin/bash出现12次,/sbin/nologin出现3次。
- hyn:x:525:500::/home/hyn:/bin/bash
- ljlxx:x:526:500::/home/ljlxx:/bin/bash
- lzj:x:527:500::/home/lzj:/bin/bash
- wfly:x:528:500::/home/wfly:/bin/bash
- squid:x:23:23::/var/spool/squid:/sbin/nologin
- wyj:x:529:500::/home/wyj:/bin/bash
- qemu:x:107:107:qemu
user:/:/sbin/nologin - radvd:x:75:75:radvd
user:/:/sbin/nologin - dungbee:x:530:500::/home/dungbee:/bin/bash
- mysql:x:27:27:MySQL
Server:/var/lib/mysql:/bin/bash - scidb:x:531:531::/home/scidb:/bin/bash
- postgres:x:532:532::/home/postgres:/bin/bash
- crane:x:533:533::/home/crane:/bin/bash
- test:x:534:534::/home/test:/bin/bash
- hguser:x:535:535::/home/hguser:/bin/bash
- cat
/etc/passwd|awk -F: '{print $7}'|sort|uniq -c
使用awk根据冒号分割内容,打印输出分割后的第7列,也就是shell所在列。然后调用sort命令排序并使用uniq-c统计每个shell出现的次数。
二、文件整理
问题:
employee文件中记录了工号和姓名bonus文件中记录工号和工资要求把两个文件合并并输出如下
处理结果:参考答案:
- employee.txt:
- 100
Jason Smith - 200
John Doe - 300
Sanjay Gupta - 400
Ashok Sharma
- bonus.txt:
- 100
$5,000 - 200
$500 - 300
$3,000 - 400
$1,250
处理结果:
- 400
ashok sharma $1,250 - 100
jason smith $5,000 - 200
john doe $500 - 300
sanjay gupta $3,000
- paste
employee.txt bonus.txt | awk '{print $1,$2,$3,$5}'|tr '[:upper:]' '[:lower:]'|sort -k 2
这里用到好几个命令,包括paste,awk,tr以及sort。paste命令用于合并多个文件的同行数据,如上面两个文件employee和bonus调用paste后合并成
- 100
Jason Smith 100 $5,000 - 200
John Doe 200 $500 - 300
Sanjay Gupta 300 $3,000 - 400
Ashok Sharma 400 $1,250
awk用于提取除了tab符号的其余4列。
tr命令用于将字符串中所有大写字符转换为小写字符。
sort命令对字符排序。sort -k2表示按文件第2个域排序,这里第二个域为姓名,所以是按姓名升序排序。如果要降序排列,则要用sort -k 2r。
sort命令对字符排序。sort -k2表示按文件第2个域排序,这里第二个域为姓名,所以是按姓名升序排序。如果要降序排列,则要用sort -k 2r。
三、打印本机交换分区大小
问题:打印本机交换分区大小,输出如下
- Swap:1024M
- top
-n 1|grep Swap|sed 's/k.*//'|awk '{print $1,$2/1000"M"}'
top 命令显示系统资源占用情况,-n 1表示只调用1次。
grep Swap选取Swap所在行。grep命令执行后结果可能如下:
- Swap:
16779884k total, 0k used, 16779884k free, 3268200k cached
sed命令用于字符串的一些正则匹配,这里使用了替换参数,将第1个k以及后面的字符替换成了空白。这样,sed执行后,结果为:
- Swap:
16779884
四、用户清理
问题:清除本机除了当前登陆用户以外的所有用户。
参考答案:
- kill
$(who -u|grep -v `whoami`|awk '{print $6}'|sort -u)
解析:
who -u显示所有当前用户。grep -v选取当前登录用户以外的所有用户。awk打印用户进程ID。sort-u会删除相同的行。最后用kill命令终止。
0 0
- 统计文本中某值字段数量-cat-awk-sort-uniq-c
- 统计文本中某值字段数量-cat-awk-s…
- Linux命令 cat, sort, uniq及awk应用
- 文本处理命令 cat more less cut wc sort uniq
- linux文本处理 sort,grep,sed,awk,uniq 用法
- linux文本处理 sort,grep,sed,awk,uniq 用法
- linux文本处理 sort,grep,sed,awk,uniq 用法
- sort uniq cat grep apache_log
- awk sort uniq wc -l
- awk、cut、sort和uniq
- diff/sort/uniq/awk/vi
- grep awk cut sort uniq sort
- linux sort uniq -c
- linux sort uniq -c
- 常用文本过滤命令笔记(find grep wc awk sed sort uniq split)
- shell 删除文本中的重复行(sort+uniq/awk/sed) (方法=效率啊)
- Linux常用文本过滤命令(find grep wc awk sed sort uniq split)
- linux下使用awk,wc,sort,uniq,grep对nginx日志进行分析和统计
- C. Hard Process
- C 【函数 递归】
- SQLiteOpenHelper类的简化操作数据库(api查询方式)
- hdu1098(基础)
- 1002. A+B for Polynomials (25)
- 统计文本中某值字段数量-cat-awk-sort-uniq-c
- Excuses, Excuses!
- 百度 罪犯转移
- 1008
- Subline Java 环境搭建
- LIS、LCS 小结
- 添加内容到网盘
- Ubuntu 14.10集成redmine和gitlab(bitnami stacks)
- GDOI2016模拟3.9 暴走的图灵机 矩阵乘法优化暴力