linux三剑客是什么意思

 我来答
匿名用户
2018-08-06
展开全部
shell命令: awk grep sed
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老男孩教育
2021-11-25 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部
grep
是一个强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来,grep全称是Global Regular Expression
Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep的工作方式是,它在一个或多个文件中搜索字符串模板,如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名,搜索的结果被送到标准输出,不影响原文件内容。
grep可以用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2,可以利用这些返回值,进行一些自动化的文本处理工作。
awk
awk是一种编程语言,用于在Linux/Unix下对文本和数据进行处理,数据可以来自标准输入、一个或多个文件,或其他命令的输出,它支持用户自定义函数和动态正则表达式等先进功能,是Linux/Unix下的一个强大编程工具,它在命令行中使用,但更多是作为脚本来使用。
awk有很多内建的函数,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优点。
sed
是一种流编辑器,一次处理一行内容,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令来处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
然后读入下行,执行下一个循环,文件内容并没有改变,除非你使用重定向存储输出或-i。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
良玉小帝
2018-08-08 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9450

向TA提问 私信TA
展开全部
linux三剑客命令-grep、sed、awk
grep 命令 :强大的文本’搜索’工具
1.grep -n 'word' file_name
在file_name文件中找到word所在的所有行并显示。-n 为显示行号。
2.grep 'w[ea]ll' file_name
在file_name文件中找到wall 或者是well 所在的所有行并显示
3.grep 'w[^e]ll' file_name
在file_name文件中找到”非well” 所在的所有行并显示
4.grep '^The' file_name
在file_name文件中找到以The开头的所有行并显示(请与上一条命令进行区别)
5. grep 'goo..le' file_name
在file_name文件中找到goo(任意字符)(任意字符)le的所有行并显示(即总共七个字符)
6.grep 'g*g' file_name
在file_name文件中找到g , gg , ggg等的所有行并显示(*代表重复前一个字符0~~无穷多次)
7.grep 'Ty\{2,3\}' file_name
在file_name文件中找到Tyy,Tyyy的所有行并显示(注意{}在 shell中有特殊含义,故需要转义)

注意 : grep可以使用grep –color=always 来使得所查找的字符拥有特殊颜色,然后在执行source ~/.bashrc 来使得设置立即生效。
sed :实现数据的替换,删除,增加,选取等(以行为单位进行处理)
1.sed '2,4d' file_name

删除file_name文件的2到4行
2.sed '2a liu .....\
>shengxi is shuai !!!' file_name

在第二行下新增这样两行

3.sed '2,4c ni han ma a !!!' file_name

把file_name文件的2到4行,替换为ni han ma a !!
4.sed '2,5p' -n file_name

把file_name文件的2到5行打印出来(不用-n 参数,就会重复输出2到5行)
5.sed -i 's/a\[t\]\./p_temp->/g' file_name

把file_name文件中的a[t]. 全部替换为p_temp-> (-i 会直接将修改写入文件,[ ] 和 . 是特殊符号,需要用\来转义一下)
awk : 以字段为单位进行处理(其实就是把一行的数据分割,然后进行处理)
先介绍一些关于awk的用法:
1.$0 代表一整行的数据
2.$1 代表第一个字段,用人的话来说就是第一列的数据
3.$2 以此类推
4.NF 每一行拥有的字段总数
5.NR 目前处理的是第几行的数据
6.FS 目前的分隔字符
7.命令格式 :awk '条件{命令1} 条件{命令2}...' file_name

具体命令:
1. awk 'NR<6{print $1 "\t" $2 }' file_name
把file_name 文件中的前五行的第一列,第二列的数据列出来 (以[tab]或空格键分隔)
2.awk '{print "该行数据为" $0 "\t" "该行的字段总数为" NF "\t" "目前这是第几行" NR}' file_name
3. awk 'BEGIN{FS=":"} $3<10{print $1 "\t" $3}' /etc/passwd
把/etc/passwd文件的第一列与第三列列出来(BEGIN可以让我们自己设置的分隔字符立即生效)
/etc/passwd 文件中第一列是帐户,第三列是UID(就是用户ID)。该文件以 : 号分隔,一行代表一个用户,记录关于用户的各种信息。

特殊说明:
1.print 默认带有换行符,printf 没有
2.像\n ,\t,这种符号应该用双引号括起来
3.NR,NF等变量要用大写,并且不需要 $

三剑客命令总结:
-记住三个命令的运用形式
grep '字符' 文件
sed '命令' 文件
awk '条件{命令}' 文件
-死记一点,单引号内就是正则表达式的用法

重复一遍:单引号内一定是正则表达式,一定,一定!!!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林羽可
2018-08-07
知道答主
回答量:24
采纳率:50%
帮助的人:4.1万
展开全部
grep,sed ,awk
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式