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,如需转载请自行联系原作者
相关文章
|
8月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
966 1
二、Linux文本处理与文件操作核心命令
|
8月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
553 137
|
8月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1474 58
|
7月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1335 2
|
8月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
720 16
|
8月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
817 0
Linux内存问题排查命令详解
|
9月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
1721 0
|
9月前
|
安全 Linux Shell
Linux系统中sudo命令的高效运用技巧。
用户可以通过sudo -l来列出自己目前可执行的命令列表,这有助于用户了解自己的权限范围。
358 0
|
9月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
10月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
669 0