关键词:
目录
一、前言回顾
我之前写的一篇《Linux基本命令及编程环境实验 》,一度爆文,成为热门文章。众所周知,Linux是一类强大的操作系统,它的功能强大,稳定性高,在大公司企业应用广泛,掌握Linux的相关命令操作和知识体系显得十分重要。Linux博大精深,只学习到入门时候就感受到当初设计者的智慧,当然Linux系统也是大牛们智慧的结晶,不断优化迭代更新,衍生了许多版本类型。相对熟悉且使用普遍的发行版本就是Ubuntu。
这篇继续学习探索Linux,算是进阶一步,在前面的基础上,通过详细例子掌握更高级的命令,主要为文本处理技术,grep、sed、awk三个命令,感受神奇强大的Linux!
Linux系统学习相关文章:
二、grep
1、grep是什么?
UNIX grep家族由命令grep、egrep和fgrep组成。grep命令在文件中全局搜索正则表达式,并打印包含该表达式的所有行。egrep和fgrep命令是grep的变体。egrep命令是一个扩展的grep,支持更多的re元字符。fgrep命令称为固定grep。
grep命令格式:
grep [option] pattern filename
pattern为正则表达式,filename为目标操作文件名,option为可选择项,具体包括:
-i | 忽略字母的大小写 |
-n | 打印行号和匹配的行 |
-v | 打印不匹配的行 |
-c | 只打印匹配的行数 |
-w | 以字符串的形式搜索给定的模式 |
-l | 只打印具有匹配行的文件名称 |
2、grep用法详例解析
下面通过例子学习grep命令的使用,给定当前目录下的donors文本:
Mike Harrington:(510) 548-1278:250:100:175
Christian Dobbins:(408) 538-2358:155:90:201
Susan Dalsass:(206) 654-6279:250:60:50
Archie McNichol:(206) 548-1348:250:100:175
Jody Savage:(206) 548-1278:15:188:150
Guy Quigley:(916) 343-6410:250:100:175
Dan Savage:(406) 298-7744:450:300:275
Nancy McNeil:(206) 548-1278:250:80:75
John Goldenrod:(916) 348-4278:250:100:175
Chet Main:(510) 548-5258:50:95:135
Tom Savage:(408) 926-3456:250:168:200
Elizabeth Stachelin:(916) 440-1763:175:75:300
题目:
- Print all lines containing the string Tom.
- Print all lines where the person's first name starts with J.
- Print all lines ending in 175.
- Print all lines that don't contain 175.
- Print all lines where the phone number is in the 206 area code.
解答:
1. grep 'Tom' donors
2. grep '^J' donors
3. grep '175\\>' donors
4. grep -v '175' donors
5. grep '(206)' donors
结果:
三、sed
1、sed是什么?
sed命令是一种流线型的非交互编辑器(Stream editor)。sed程序不与编辑器交互工作,而是允许在命令行键入编辑命令,命名文件,然后在屏幕上查看编辑命令的输出。默认情况下,所有行都打印到屏幕上。sed编辑器是非破坏性的,可以使用shell重定向保存输出,否则它不会更改文件内容。
sed命令格式:
sed [option] '[address]command' filename
常用的option:-n,表示只打印出匹配到的行
command为/pattern/形式的正则表达式,这里sed命令与grep不同在于多了一个address选项,表示要对匹配的文本进行的操作,常用的有:
d | 删除行 |
s | 替换匹配的字符串 |
p | 打印行 |
a | 向当前行追加一行或多行文本 |
2、sed用法详例解析
题目:
- Change John's name to Joanthan
- Delete the first three lines
- Print lines 5 through 10
- Delete lines containing Mike
- Delete all blank lines
解答:
1.sed 's/John/Joanthan/' donors
2.sed '1,3d' donors
3.sed -n '5,10p' donors
4.sed '/Mike/d' donors
5.sed '/^[ \\t]*$/d' donors
结果:
四、awk
1、awk是什么?
Awk是一种UNIX/Linux编程语言,用于操作数据和生成报告。nawk是一个较新的版本,而nawk是Gnu版本。数据可以来自标准输入、一个或多个文件,也可以作为流程的输出。awk可以在命令行中用于简单的操作,也可以将其写入用于大型应用程序的程序中。因为awk可以操作数据,所以它是shell脚本和管理小型数据库中不可缺少的工具。
awk命令格式:
- awk 'pattern' filename
- awk 'action' filename
- awk 'pattern action' filename
同样类似上面的两种命令,awk功能更加强大,可以指定分隔符按字段取出字符串。
2、awk用法详例解析
题目:
- Print all the phone numbers
- Print Dan's phone number
- Print all last names beginning with D
- Print Main’s campaign contributions. Each value should be printed with a leading dollar sign; e.g., $250 $100 $175.
- Print the name and total contribution of each person.
解答:
1.awk -F: 'print $2' donors
2.awk -F: '/Dan/print $2' donors
3.awk -F'[ :]' '$2~/^D/print $2' donors
4.awk -F'[ :]' '$2~/Main/print "$"$5,"$"$6,"$"$7' donors
5.awk -F: 'print $1,$3+$4+$5' donors
结果:
- (406) 298-7744
-
Dobbins
Dalsass -
$50 $95 $135
-
五、总结
这篇继续学习探索Linux,进阶一步,通过详细例子掌握更高级的命令,主要为文本处理技术,grep、sed、awk三个命令,感受神奇强大的Linux。从详细例子学习中发现,掌握正则表达式也是很关键。众所周知,Linux是一类强大的操作系统,它的功能强大,稳定性高,在大公司企业应用广泛,掌握Linux的相关命令操作和知识体系显得十分重要。
如果觉得不错欢迎“一键三连”哦,点赞收藏关注,有问题直接评论,交流学习!
Linux系统学习相关文章:
我的CSDN博客:https://blog.csdn.net/Charzous/article/details/110507267
linux的awk、grep、sed工具,实现文本查找、编辑、格式化
...文本,awk适合格式化文本,对文本进行较复杂格式处理。命令格式:grep[option]patternfile用于过滤/搜索的特定字符,可与正则表达式配合,使用上十分灵活。命令格式:sed[options]'[地址定界]command'file(s)用于编辑一个或多个文... 查看详情
linuxbash文本处理命令awk,sed,grep用法(代码片段)
Linuxbash文本处理命令grep,sed,awk用法grep,sed,awk的主要用途及区别:grep用法grep-rn"hello,world!"././:表示路径为当前目录.-r是递归查找-n是显示行号如果加上-i,则为忽略大小写。sed用法awk用法 查看详情
学习计划20180918
第一阶段:初级入门 1、Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令) 2、Linux用户及权限基础 3、Linux系统进程管理进阶 4、linux高效文本、文件处理命令(vim、grep、sed、awk... 查看详情
notes12用swagger开发rest,正则,linux命令sed/awk/grep(代码片段)
文章目录1.swagger:用来规范前端和后端统一接口管理2.正则2.1组group3.sed4.awk5.grep1.swagger:用来规范前端和后端统一接口管理rest接口本身就是http的接口,只不过rest接口一般满足一定的规范,这个规范下的http接口就... 查看详情
linux系统常用指令grepsed和awk(代码片段)
...wk之行与列3.3awk之模式匹配3.4awk数组3.5awk循环与判断1概论命令特点场景grep过滤grep命令过滤速度是最快的sed替换,修改文件内容,取行进行替换/修改文件内容取出某个范围的内容awk取列,统计 查看详情
linux文本三剑客--grepsedawk(代码片段)
...Linux文本三剑客--grep、sed、awk1、grep1.1什么是grep1.2使用grep命令格式命令参数基本正则表表达式匹配字符匹配次数位置锚点:定位出现的位置扩展正则表达式2.sed2.1什么是sed2.2使用sed命令格式常用选项options地址定界编辑命令comm... 查看详情
linux三剑客的基本使用——grep、sed、awk
参考技术Agrep、sed、awk是linux功能非常强大的三个命令,grep是查找过滤文本,sed是对文本进行编辑替换,awk是对文本进行分析报告。最简单的理解就是找什么东西用grep,想修改什么内容用sed,想格式化内容用awk。创建一个文件名... 查看详情
unix&linux的文本处理工具--grep,sed&awk
...全局匹配并且拥有自身的主输入循环。除去影响控制流的命令或语句(sed中:t,b;awk中continue,break等)默认对文本的每一读取的行依次执行相应的命令或语句。awk相较于文本编辑工具更像是一门语言,awk条件、循环、判断语句有显... 查看详情
linux生产文本处理掌握这些就够了:awk,gawk,sed,grep,sort
...文件中各种数据的日常处理任务自动化。但仅靠shell脚本命令来处理文本文件的内容有点力不从心的。如果想在shell脚本中处理任何类型的数据,掌握grep,sed和gawk工具可以达到事半功倍的效果。企业开发中常用,高阶命令... 查看详情
linux生产文本处理掌握这些就够了:awk,gawk,sed,grep,sort
...文件中各种数据的日常处理任务自动化。但仅靠shell脚本命令来处理文本文件的内容有点力不从心的。如果想在shell脚本中处理任何类型的数据,掌握grep,sed和gawk工具可以达到事半功倍的效果。企业开发中常用,高阶命令... 查看详情
linux三大文件处理工具(grep/sed/awk)(代码片段)
grep,sed与awk是linux三个很强大的文件处理工具。gerp查找,sed编辑,awk根据内容分析并处理。现在我们去了解一下这三种文件处理工具有什么不同(肯定不同了,要不然为什么有三种。。。) grep(关键字:截取) 文本搜集工具,结... 查看详情
shell❀三剑客-grep+sed+awk(代码片段)
...2.2常见语法2.3使用方法2.3.1地址边界的设定2.3.2基础编辑命令2.3.3扩展操作2.3.4命令执行案例3、Awk-列匹配3.1awk能做什么3.2执行原理3.3命令的使用3.4语法格式与使用3.4.1输出方式3.4.1.1print的使用格式 查看详情
shell❀三剑客-grep+sed+awk(代码片段)
...2.2常见语法2.3使用方法2.3.1地址边界的设定2.3.2基础编辑命令2.3.3扩展操作2.3.4命令执行案例3、Awk-列匹配3.1awk能做什么3.2执行原理3.3命令的使用3.4语法格式与使用3.4.1输出方式3.4.1.1print的使用格式 查看详情
notes11用swagger开发rest,正则,linux命令sed/awk/grep,websocket,dns(代码片段)
文章目录1.swagger:用来规范前端和后端统一接口管理2.正则:https://regex101.com/(regularexpression)2.1组group:如上只想获取@前面的用户名,上面中括号,大括号都出现了,就差小括号3.sed:替换,删除... 查看详情
如何通过命令行实用程序操作文本:grep、cut、awk、sed 或 BBEdit(Grep 查找选项)
】如何通过命令行实用程序操作文本:grep、cut、awk、sed或BBEdit(Grep查找选项)【英文标题】:Howtomanipulatetextviacommand-lineutilities:grep,cut,awk,sedorBBEdit(GrepFindOption)【发布时间】:2020-06-2419:34:36【问题描述】:我正在为一个srt文件而... 查看详情
find/pg/grep/sed/awk命令
findpathname-options[-print-exec-ok...] -print:find命令将匹配的文件输出到标准输出。 当前目录下查找文件权限位为755的文件 $find.-perm755-print   查看详情
linux、grep、awk、sed删除关键字的上一行
随便用什么命令,例子如下:afssafgsdfaagwfsad454如关键字为wf则删除sdfaagsed'N;/\n.*关键字/!P;D'文件名回答的很好不过.*加的有些画蛇添足了,直接写成sed'N;/\n关键字/!P;D'文件名,就好了把两会合并为一行\n就代表... 查看详情
linux系统常用指令grepsed和awk(代码片段)
...wk之行与列3.3awk之模式匹配3.4awk数组3.5awk循环与判断1概论命令特点场景grep过滤grep命令过滤速度是最快的sed替换,修改文件内容,取行进行替换/修改文件内容取出某个范围的内容awk取列,统计计算取列对比,比较&... 查看详情