七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

格式说明:

操作

概念

命令

说明及举例


七.cat、cut、less、head、tail、wc、sort、uniq、grep


cat

cat -A a.txt 查看隐藏内容
cat -n a.txt 显示行号
cat -s a.txt 压缩空行,把多行空行压缩为一行
tac a.txt 反着显示文件内容(反写命令cat)
rev a.txt 文件中每行的内容反向显示
cat f1 f2 合并f1 f2 内容

more 分页显示

more -d a.txt 空格翻页,回车一行行看

less

可以往回翻页,n往下翻页,N往上翻页, /+内容搜索

head

默认显示文件前十行

head -n 30 file 显示文件前30行

tail

默认显示文件后10行

tail -n30 file 显示文件后30行
tail -n20 -f file 动态显示文件后20行
tail -n0-f f1 & 后台运行,有新变化时候显示
jobs 查看后台运行的程序
fg 1 
ctrl c结束

cut 从文件中取部分内容,取列

cut -d: -f1,3,5-7 file 分隔符为:取文件中第1,3,5-7列内容
cut -c1-2 file 取文件1-2个字符数
getent passwd|cut -d: -f1-3 --output-delimiter=* 分隔符替代为*

paste

paste -d: f1 f2 把f1 f2 文件内容按行合并,以:分隔

wc 文本数据统计

wc f1 显示文件f1有多少行、单词、字符
wc -l f1 只统计行
wc +输入 ctrl+d结束,统计输入的数据

sort 文本排序

sort -t: -k 3 -nru /etc/passwd 以:为分隔符对第三列进行倒序数字大小排序并合并重复

echo 最大使用率为:df|cut -c 44-47|sort -n|tail -2|head -1

uniq 从输入中删除重负的前后相接的行

uniq -c f2 显示每行重复出现的次数
-d 仅显示重复行
-u 仅显示不重复的行

diff 比较两个文件的不同

diff -u f1 f11 >diff.log 比较两个文件并把结果存到diff.log中
删除f11后
patch -b f1 diff.log 恢复f11名称为f1 并把原有f1重命名

looger "this is a test log"

ps axo user.ruser.group,rgroup.cmd 看进程有效用户,真正发起的用户,有效组,真正执行的组,执行的命令


netstat -tn 查看链接

grep 文本过滤

主要功能:从文本中过滤出特定的行 grep 支持正则表达式 egrep 支持扩展的正则表达式 fgrep 不支持正则表达式(速度快)

grep root /etc/passwd 从passwd文件中搜索带root的行并打印
grep -n -A3 root /etc/passwd显示匹配行及其后的3行
grep -n -B3 root /etc/passwd显示匹配行及之前的3行
grep -n -C3 root /etc/passwd显示匹配行及其前后的3行
grep -n -C3 -e root -e home /etc/passwd显示包含root或home的行及其前后的3行
grep "$USER" /etc/passwd
-v 显示与搜索条件不匹配的行
-i 忽略大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 只显示匹配到的字符串
-q 静默模式
echo &? 显示上一个命令是否执行成功,成功显示0
-e 或者 -e root -e home 包括root或者home
-w 单行单词过滤
-E

正则表达式

元字符分类:字符匹配、匹配次数、位置锚定、分组

字符匹配

. 匹配任意单个字符

grep r..t /etc/passwd

[] 匹配指定范围内的任意单个字符

grep r[a-Z][a-Z]t /etc/passwd

[^]匹配指定范围外的任意单个字符

匹配次数(看右边,左边有转译)

* 匹配前面的字符任意次,包括0次

ro*t rot roooot

\?匹配前面的字符0次或者1次

grep "ro\?t" /etc/passwd

\+ 匹配前面的字符1次以上

\{17\}匹配前面的字符17次

\{1,19\}匹配前面的字符1到19次之内

grep "ro{1,19\}t" /etc/passwd

\{,16\}匹配前面的字符最多16次

\{18,\}匹配前面的字符最少18次

位置锚定 定位出现的位置

^表示行首

grep ^root /etc/passwd 搜出以root开头的行

$表示行尾

grep root$ /etc/passwd 搜出以root结尾的行
grep ^root.bash$ /etc/passwd 搜出以root开头以bash结尾的行 
grep "^$" /etc/passwd 搜出空行
grep -v "^$" /etc/passwd 搜出非空行
grep -v "^[[:space:]]
$" /etc/passwd 搜出非空行,包括空格

\<\ >用于单词的锚定 分开就是词首\<和词尾\>

grep "\<root>" /etc/passwd 搜出包含整个root单词的行

\b可以锚定词首或词尾

分组

\(root\)\+ 表示root单词重复1次以上
grep "\(r.t).*\(r..t).*\1" f1 这句话代表第一个分组(r.t)的匹配结果中的第一个,到\1的一段内容都符合的行,假如(r.t)的结果是rat,那么\1的结果也是rat,最后的结果就是筛选出包含类似结果为"rat…raat..rat"的行,如果是\1换成\2,则是匹配(r..t)的

总结:

七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

练习:
1.cat /proc/meminfo |grep -i ^s (grep -i ^s /proc/meminfo)
2.cat /etc/passwd|grep -v "/bin/bash"$ (grep -v "/bin/bash"$ /etc/passwd)
3. cat /etc/passwd|grep '^rpc\b'|cut -d: -f7 (grep '^rpc\b'|cut -d: -f7|cut -d: -f7)
4. grep "\<[[:digit:]]{2,3}>" /etc/passwd
5. grep "^[[:space:]]+[^[:space:]]." /testdir/f1
6. netstat -tan|grep "\bLISTEN[[:space:]]
$" 
7. 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

egrep 扩展正则表达式

七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep 重复多次o,不用加\了

七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

练习:
1.grep -E "^(root|mage|wang)\b" /etc/passwd|cut -d: -f1,3,7
2.grep -E "^([[:alpha:]_])+().*" /etc/rc.d/init.d/functions
3.

/etc/rc.d/init.d/functions

正则表达式表示ip 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

正则表达式表示手机号

七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

邮箱 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

sed 文本编辑工具

awk 文本报告生成器

原创文章,作者:自己泡面,如若转载,请注明出处:http://www.178linux.com/39191

(0)
自己泡面自己泡面
上一篇 2016-08-24
下一篇 2016-08-24

相关推荐

  • 第1周作业

    第一周作业   1、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机 运算器,控制器:CPU 存储器:内存和硬盘 输入装置和输出装置:键鼠和显示器   2、按系列罗列Linux的发行版本,并描述不同版本的联系和区别。   linux的发行版本大致分为两大类,一类是商业公司维护的发行…

    Linux干货 2017-08-24
  • 马哥教育30期学员开学典礼

         早上背上书包去学校报到,很有一番学生时期去新学校的感觉,既兴奋又紧张,一段新的人生历程即将开始。      大学时曾经劝说我的同学别逃选修课,我说也许你苦学四年的专业比不上一节选修课对你的将来更有用,如今我却用亲身经历验证了这句话,我是通过大学的一堂选修课了解的Linux系统,开源软件,没想到多年后今天的我竟然也要入这行了。       到教室后,…

    2018-03-26
  • linux入门第二课

    **linux入门基础** linux 命令类别 内部命令和外部命令 首先我们可以用echo $SHELL 来查询shell 里面会显示我们当前在用的shell 上图是echo $SHELL 也可以用cat /etc/shells来查询系统里面的shell bash其实是一个文件是一个程序 存在于 /bin/bash 目录,这是真是存在的文件,是一个可以执行…

    Linux干货 2017-05-20
  • Linux nginx服务之反向代理

                       Linux nginx服务之反向代理 Nginx服务之反向代理: GSLB:Global Service LB 全局服务负载均衡: SLB:Service LB 应用程序发布: 灰度模型:   ngx_http_…

    系统运维 2016-11-18
  • 第七周

    第七周 1 创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动…

    Linux干货 2017-02-20
  • 马哥教育网络班22期+第7周课程练习 忍者乱太郎喻成

    第七周 1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    我个人比较喜欢使用交互式的分区工具fdisk    我以fdisk为例: &n…

    Linux干货 2016-11-21