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,如需转载请自行联系原作者
相关文章
|
4天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
22 3
|
4天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2
|
4天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
22 3
|
14天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
29 4
|
5月前
|
监控 Unix Linux
windows和linux实时监控文本内容的命令
windows和linux实时监控文本内容的命令
187 1
|
6月前
|
Linux Shell 开发工具
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
106 0
|
机器学习/深度学习 Linux
Linux强大的文本搜索命令:egrep
Linux强大的文本搜索命令:egrep
194 0
|
Linux
Linux 文本查看命令
Linux 文本查看命令
123 0
|
Linux 计算机视觉
Linux文本搜索:grep命令
Linux文本搜索:grep命令
416 1
Linux文本搜索:grep命令