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,如需转载请自行联系原作者
相关文章
|
2月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
372 3
|
2月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
184 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
274 16
|
4月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
148 1
Linux系统性能调优技巧和相关工具
|
3月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
Linux
《循序渐进LINUX》笔记
基础知识、服务器搭建、系统管理、性能调优、集群应用 1、swap物理内存两倍 2、根分区5G 3、/boot 100M 4、查看系统硬件信息: cat /proc/meminfo cat /proc/cpuinfo 查看磁盘信息: fd...
1403 0
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
420 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
290 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
678 57
|
1月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
402 2