sed 可理解为 stream editor 的简称,即文本流编辑器。以行为单位处理文本,可以做插入行、删除行、行内文本替换等操作。
awk 中存在 记录 和 字段 两个关键概念,通常默认一行就是一个记录,一个记录又可以被指定分隔符(默认是空格或tab)分割为多个字段。因此awk更为灵活与强大(并且有很多内置函数和变量可使用)。
关于具体用法,太多了。强大的东西总不是三言两语能够说尽的。网上有很多教程可以看,例如:
Sed - An Introction and Tutorial.doc
Awk - An Introction and Tutorial.doc
2. 《sed与awk》txt下载在线阅读全文,求百度网盘云资源
《sed与awk》((美)多尔蒂/(美)罗宾斯)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1BXD8eWjP1_w5NZBoYINhwg
书名:《sed与awk》
作者:(美)多尔蒂/(美)罗宾斯
译者:张旭东/杨作梅/田丽华
豆瓣评分:8.0
出版社:机械工业出版社
出版年份:2003-8
页数:432
内容简介:本书在一开始就给出一个概述和指南,论述了从grep到sed再到awk不断改进的功能。sed和awk具有相同的命令行语法,以脚本的形式接收用户的命令。因为所有这三个程序都使用UNIX正则表达式,因此书中用一章的篇幅来介绍UNIX的正则表达式语法。
然后,本书介绍如何编写sed脚本。从编写几行简单的脚本开始,学习进行手工编辑操作的其他基本命令和高级命令,以及由此引入的简单程序结构。这些高级命令包括用于处理保持空间、即一个等量齐观时缓冲区的命令。
3. awk、sed和shell有什么区别和关系
awk和sed都是文本流编辑器,通常都是以行(记录)为单位处理文本;
awk更是可以将一个记录根据指定分隔符分割为多个字段,然后处理字段,更为灵活。awk甚至可以看作一门编程语言,内部语言环境(语法)类似C语言。
shell是linux/unix的人机交互接口,将用户输入的命令翻译为内核可以执行的指令,其界面可以认为是我们平时看到的命令终端窗口。shell中可以调用外部程序,例如sed和awk。
shell+sed+awk的组合非常强大,足以应付日常操作需求。
4. Linux里面sed和awk命令哪个重要
你好很高兴回答您的问题:
既然接触到了三剑客的sed和awk,对Linux应该是有些认知了吧.下面基于这个给您介绍下.
Linux的秘籍三剑客 grep,sed,awk是Linux命令,甚至是shell编程部分的核心技术.
掌握与数量可以加速处理文本速度.
grep擅长过滤与正则
sed擅长替换与增删改查
awk擅长统计计算与取行取列
快收下下面的宝典修炼吧.
5. 多行文本复制,如何用sed或awk或别的工具实现
sed-rn'p;/bbb/,/ddd/H;/ddd/{g;s/^ //;p}'file.txt
说明:
sed内部有两个空间,一个模式空间,一个保留空间。
通常sed将文本内容逐行读入模式空间进行处理,保留空间仅用于暂时保留内部数据用于与模式空间的数据交换。可以这么理解:模式空间用于与外部的数据交换,保留空间用于sed内部的数据交换,最终还是要通过模式空间输出。
/bbb/,/ddd/H; 逐行处理时将bbb~ddd区段的文本从sed的模式空间附加到保留空间内,每行内容之间以
分割,因此,最终保留空间内容为:
bbb
ccc
ddd
/ddd/{g;s/^
//;p} 处理到ddd这行后,通过g命令获取保留空间内容到模式空间,通过s替换命令去除开头的
,p命令打印。
sed除了可以将输出重定向到新文件外,加 -i 选项还可以直接改写原文件。
------------------------------------------
也可以通过vim手动编辑。
vim file.txt
光标定位于第二行,即bbb这行
输入命令 3yy ,即向下复制三行
光标定位于第五行,即ddd这行
输入命令 p,粘贴
输入命令 :wq , 保存并退出
6. linux shell中的awk和grep的使用方法和主要作用,求详解~\(≧▽≦)/~
awk 是一种编程语言,grep是一个工具;
你要时问c语言的用法,我怎么回答呢?
而grep怎么用?man grep
7. awk和sed是做什么用的,有什么区别
都是shell脚本中可用的处理字符数据的函数,都能对日志文件进行批处理。
只不过两种的命令设置和处理功能不完全相同,特别是awk已经发展成了一个小语言了,功能非常强大。
8. Linux中sed命令同awk命令有什么区别呢,具体该如何使用呢
sed 多用来编辑修改
awk 多用来打印
sed grep awk 俗称三剑客
使用上sed 和 awk扩展下来,内容可多了,甚至awk可以被当作一种脚本工具,单独出书,sed简单的用法增删改查都是可以直接网络到的,awk的打印也是。
例如 sed中
s 替换
sed 's/zhangsan/lisi/' yourfile 就是将zhangsan替换为lisi ,打印不执行
加上i后才真正执行 sed -i 's/zhangsan/lisi/' yourfile
d 删除
sed '/zhangsan/d' yourfile
sed -i '/zhangsan/d' yourfile
a 追加
sed -i '/zhangsan/alisi' yourfile
i 前插
sed -i '/zhangsan/ilisi' yourfile
p 打印
sed -n '/zhangsan/p' yourfile
因为它本身也会打印一般,所以加 -n 不默认打印
awk
-F 指定分隔符
awk -F ':' '/^root/{print $7}' /etc/passwd
打印以 root开头所在行,以“:”为分隔符,打印第七列
其效果就是打印了root的shell
纯手打,望采纳,谢谢,遇到具体问题仍可继续交流
9. awk或者sed 替换文件的内容
sed 里如果用变量,使用双引号
sed -i "s/^HOSTNAME/HOSTNAME=$NAME/g" network
或者隔离出来
sed -i 's/^HOSTNAME/HOSTNAME='$NAME'/g' network
10. awk和sed有什么区别
Linux sed命令是利用脚本来处理文本文件。sed可依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
Linux awk命令是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人Alfred Aho、Peter
Weinberger和Brian Kernighan的Family Name的首字符。
主要区别如下:
1、sed是一种非交互式且面向字符流的编辑器,awk则是一门模式匹配的编程语言,因为它的主要功能是用于匹配文本并处理,同时它有一些编程语言才有的语法,例如函数、分支循环语句、变量等等,当然比起我们常见的编程语言,AWK相对比较简单。
2、sed一般对行进行操作,awk对列进行操作。
3、sed擅长数据修改,awk擅长数据切片,数据格式化,功能最复杂。
4、sed全称Stream Editor,擅长对文件做数据做修改的操作,非常高效。
5、awk更适合格式化文本,对文本进行较复杂格式处理,awk程序对输入文件的每一行进行操作;awk是一门解释型的编程语言,文本处理、输出格式化的文本报表、执行算数运算、执行字符串操作等等。