Linux自学笔记——grep文本处理工具及wc,cut,sort,uniq命令

简介:

wc命令:
wc [option]… [file]…
-l:lines
-w:words
-c:characters
Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
cut命令:
cut [options]…[file]…
-d DELIMETER:指明分隔符;
-f FILEDS:
#:第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续多个字段,例如1-6
混合使用:1-3,7
--output-delimiter=STRING:指定以什么字符串输出;
Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
sort命令:
sort [option]…[file]…
-f:忽略大小写
-r:逆序
-t DELIMETER:字段分隔符;
-k #:以指定的字段为标准排序;
-n:以数值大小进行排序
-u:uniq,排序后去重;
Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
uniq命令:
uniq [option]…[file]…
-c:显示每行重复出现的次数;
-d:仅显示重复过的行;
-u:仅显示不曾重复的行;
Note:连续且完全相同方为重复;
Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
练习:以冒号为分隔,取出/etc/passwd文件的第6行至第10行,并将这些信息按第3个字段的数值大小进行排序,最后显示的各自的第1字段;
Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令

grep:
linux 上文本处理三剑客
grep:文本过滤(模式:pattern)工具;
sed:stream editor,文件编辑工具;
awk:linux上的实现gawk,文本报告生成器;
grep:Global search REgular expression and Print out the line.
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行匹配检查;打印匹配到的行;
模式:由正则表达式字符及文本字符所编写的过滤条件;
REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能;
分两类:
基本正则表达式:BRE
扩展正则表达式:ERE
grep –E ,egrep
正则表达式引擎
grep [OPTIONS] PATTERN [FILE…]
选项:
--color=auto:对匹配到的文本着色显示;
-v:显示不能够被pattern匹配到的行;
-i:忽略字符大小写;
-o:仅显示匹配到的字符串;
-q:静默模式,不输出任何信息;
-A #:after,后#行
-B #:before,前#行
-C #:context,前后各#行

    -E:使用ERE

基本正则表达式元字符:
字符匹配:
.:匹配任意单个字符;
[]:匹配指定范围内的任意单个字符;
[^]:匹配指定范围外的任意单个字符
[:digit:] [;lower:] [;upper:] [:alpha:] [:alnum:] [:punct:] [:space:]
匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的字数;
:匹配前面的字符任意次;
.
:任意长度的任意字符;
\?:匹配其前面的字符0或者1次;即前面的可有可无;
+:匹配其前面的字符至少一次;
{m}:匹配前面的字符m次;
{m,n}:撇批前面的字符至少m次,至多n次;
{0,n}:匹配前面的字符至多n次;
{m,}:匹配前面的字符至少m次
位置锚定:
^:行首锚定;用户模式的最左侧;
$:行尾锚定;用于模式的最右侧;
^PATTERN$:用于匹配模式整行;
^$:空行;
^[[:space:]]$:空行;
\< 或 \b:词首锚定;用于单词模式的左侧;
\> 或 \b:词尾锚定;用于单词模式的右侧;
\<PATTERN>\>:匹配整个单词;
分组:
():将一个或多个字符捆绑在一起,当作一个整体进行处理;
(xy)
ab
Note:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2,\3,…
\1:从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符:
(ab+(xy)):
\1:ab+(xy)

\2:xy
后向引用:引用前面的分组括号中的模式所匹配的字符,(而非模式本身)
练习:

  1. 显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  2. 显示/etc/passwd文件中不以/bin/bash结尾的行;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  3. 显示/etc/passwd文件中ID号最大的用户的用户名;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  4. 如果用户root存在,显示其默认的shell程序;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  5. 找出/etc/passwd中的两位或三位数;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  6. 显示/etc/rc.d/rc.sysinit文件中,至少以一个空白字符开头的且后面存非空白字符的行;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  7. 找出"netstat -tan"命令的结果中以'LISTEN'后跟0、1或多个空白字符结尾的行;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  8. 添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin);而后找出/etc/passwd文件中用户名同shell名的行;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令

egrep及扩展的正则表达式
egrep = grep –E
egrep [OPTIONS] PATTERN [FILE...]
扩展正则表达式的元字符:
字符匹配:
.:任意单个字符
[]:匹配范围内的任意单个字符
[^]:匹配范围外的任意单个字符;
次数匹配:
*:匹配前面的字符任意次;
?:0次或1次;
+:1次或多次;
{m}:m次;
{m,n}:至少m次,至多n次;
锚定:
^:行首;
$:行尾;
\<,\b:词首;
\>,\b:词尾;
分组;
():
后向引用:\1,\2,…
或者:
a|b
c|Cat:c或者Cat

  1. 显示当前系统root、centos或user1用户的默认shell和UID;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  2. 找出/etc/rc.d/init.d/functions文件(centos6)中某单词后面跟一个小括号的行;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  3. 使用echo输出一绝对路径,使用egrep取出其基名;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
    进一步地:使用egrep取出路径的目录名,类似于dirname命令的结果;
  4. 找出ifconfig命令结果中1-255之间的数值;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令
  5. 找出ifconfig命令结果中的IP地址;
    Linux自学笔记grep文本处理工具及wc,cut,sort,uniq命令

本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/2052156,如需转载请自行联系原作者
相关文章
|
7天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
28 9
|
1天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
13 6
Linux 中的 Nslookup 命令怎么使用?
|
2天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
3天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
3天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
46 0
|
6天前
|
缓存 运维 监控
Linux系统监控利器:探索常用命令及数据保存技巧
Linux系统监控利器:探索常用命令及数据保存技巧
23 4
Linux系统监控利器:探索常用命令及数据保存技巧
|
9天前
|
Linux 索引
linux 文件查找 和文件管理常用命令
linux 文件查找 和文件管理常用命令
18 0
|
Shell Linux
Linux中常用的文本处理命令(echo、sort、uniq、tr、cut、split、eval)(上)
1、echo命令——输出 echo 命令主要用来显示字符串信息。
318 0
|
机器学习/深度学习 Linux Shell
Linux 基础-文本处理命令
Linux 基础-文本处理命令
144 0
|
Linux 开发工具 Perl
Linux学习笔记五:Linux 文本处理相关命令
大家好,昨天我们学习了Linux的Vim 编辑器等相关知识。今天学习下Linux的文本处理相关知识点。