第19章 sed和gawk

2024-02-10 02:20
文章标签 19 sed gawk

本文主要是介绍第19章 sed和gawk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
sed命令会用斜线间指定的第二个文本字符串来替换第一个文本字符串模式。在本例中是big test替换了test。
在这里插入图片描述
在这里插入图片描述
sed编辑器并不会修改文本文件的数据。它只会将修改后的数据发送到STDOUT。如果你查看原来的文本文件,它仍然保留着原始数据。
要在sed命令行上执行多个命令时,只要用-e选项就可以了。

$ sed -e 's/brown/green/; s/dog/cat/' data1.txt

两个命令都作用到文件中的每行数据上。命令之间必须用分号隔开,并且在命令末尾和分号
之间不能有空格。
也可以这样

$ sed -e 
> s/brown/green/
> s/fox/elephant/
> s/dog/cat/' data1.txt

有大量要处理的sed命令,那么将它们放进一个单独的文件中通常会更方便一些。可以在sed命令中用-f选项来指定文件。

$ cat script1.sed
s/brown/green/
s/fox/elephant/
s/dog/cat/
$
$ sed -f script1.sed data1.txt
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
$

gawk程序脚本用一对花括号来定义。你必须将脚本命令放到两个花括号( {})中。

$ gawk '{print "Hello World!"}'

如果你输入一行文本并按下回车键, gawk会对这行文本运行一遍程序脚本。跟sed编辑器一
样, gawk程序会针对数据流中的每行文本执行程序脚本。由于程序脚本被设为显示一行固定的文本字符串,因此不管你在数据流中输入什么文本,都会得到同样的文本输出。
Ctrl+D组合键会在bash中产生一个EOF字符。这个组合键能够终止该gawk
程序并返回到命令行界面提示符下。
 $0代表整个文本行;
 $1代表文本行中的第1个数据字段;
 $2代表文本行中的第2个数据字段;
 $n代表文本行中的第n个数据字段。

$ cat data2.txt
One line of test text.
Two lines of test text.
Three lines of test text.
$
$ gawk '{print $1}' data2.txt
One
Two
Three
$$ echo "My name is Rich" | gawk '{$4="Christine"; print $0}'
My name is Christine
$

第一条命令会给字段变量$4赋值。第二条命令会打印整个数据字段。注意, gawk程序在输
出中已经将原文本中的第四个数据字段替换成了新值。

$ sed 's/test/trial/2' data4.txt

将替换标记指定为2的结果就是: sed编辑器只替换每行中第二次出现的匹配模式。
g替换标记使你能替换文本中匹配模式所匹配的每处地方。

$ sed 's/test/trial/g' data4.txt

p替换标记会打印与替换命令中指定的模式匹配的行。这通常会和sed的-n选项一起使用。

$ cat data5.txt
This is a test line.
This is a different line.
$
$ sed -n 's/test/trial/p' data5.txt
This is a trial line.
$

-n选项将禁止sed编辑器输出。但p替换标记会输出修改过的行。将二者配合使用的效果就是
只输出被替换命令修改过的行。
w替换标记会产生同样的输出,不过会将输出保存到指定文件中。

$ sed 's/test/trial/w test.txt' data5.txt
This is a trial line.
This is a different line.
$
$ cat test.txt
This is a trial line.
$

sed编辑器允许选择其他字符来作为替换命令中的字符串分隔符:

$ sed 's!/bin/bash!/bin/csh!' /etc/passwd

在这个例子中,感叹号被用作字符串分隔符,这样路径名就更容易阅读和理解了。

$ sed '2s/dog/cat/' data1.txt

sed编辑器只修改地址指定的第二行的文本。

$ sed '2,3s/dog/cat/' data1.txt

修改第二、三行的文本。
如果想将命令作用到文本中从某行开始的所有行,可以用特殊地址——美元符。

$ sed '2,$s/dog/cat/' data1.txt

这篇关于第19章 sed和gawk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695903

相关文章

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

Linux shell编程--sed进阶

一、多行命令 sed编 辑器包含了三个可用来处理多行文本的特殊命令。 N:将数据流中的下一行加进来创建一个多行组(multiline group)来处理。 D:删除多行组中的一行。 P:打印多行组中的一行。 二、next 命令 单行的next命令 小写的n命令会告诉sed编辑器移动到数据流中的下一文本行,而不用重新回到命令的最开始 再执行一遍。通常sed编辑器在移动到数

C++笔记19•数据结构:红黑树(RBTree)•

红黑树 1.简介:         红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,因而是接近平衡的。 当搜索二叉树退化为单支树时,搜索效率极低,为了使搜索效率高,建立平衡搜索二叉树就需要"平衡树"来解决。上一篇博客介绍了AVL树,这

sed和awk编辑器

目录 一、sed编辑器 1. 概述 2. sed 流编辑器的工作过程 3. sed命令格式 3.1 基本操作格式 3.2 执行多条命令的格式 4. sed命令的选项操作符 4.1 常用选项 4.2 sed命令的操作符 5. 常用操作的语法演示 5.1 输出符合条件的文本 5.2 删除符合条件的文本 5.3 替换符合条件的文本 5.4 插入新行 6. sed总结  二

张飞硬件11~19-电容篇笔记

电容作用 作为源,对后级电路提供能量,对源进行充电。简单讲就是放电和充电。在电路设计中,源往往与负载相隔很远,增加电容就可以起到稳定作用。电容两端的电压不能激变,增加电容可以稳定电压。 电容可以类比为水坝,来让水保持一个供给量稳定。 提供能量时容量要偏大 滤波时容量要偏小 电容特性 电容的电场相吸,正负极电子增多,电场的形成就越快越强大。 相等电量(q)电容越大,则电压值

wc/sed 命令使用

一、WC 命令 功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 语法:wc [选项] 文件 1.1、常用选项 -c:统计字节数。 -l:统计行数。 -m:统计字符数(这个标志不能与 -c 标志一起使用)。 -w:统计字数(一个字被定义为由空白、跳格或换行字符分隔的字符串)。 -L:打印最长行的长度。 --help:显示帮助信息。 --version:显示版本信息。

linux命令:sed命令

文章目录 0x1 删除文本:0x2 多行删除:0x3 替换文本:0x4 仅替换每行的第一个匹配项:0x5 插入文本:0x6 多行插入: 0x1 删除文本: 删除第 10 行:sed '10d' filename 0x2 多行删除: 删除第 5 到第 10 行:sed '5,10d' filename 0x3 替换文本: 将所有 "old" 替换为 "new":s

sed 命令及实战案例

🚀 本文目标:了解 sed 命令,并提供实际案例。 sed 命令 - 介绍 💚 sed 官网:GNU sed - GNU Project - Free Software Foundation ⭐ sed = stream editor,是一个没有交互,直接命令行的文本编辑器。常用于文本处理,先输入文件,然后执行一些操作(比如新增、删除、替换),最后输出修改后文本。 💖 sed 命令语法:

sed awk 第二版学习(三)—— 编写 sed 脚本

目录 一、在脚本中应用命令 二、寻址上的全局透明 三、测试并保存输出 1. 用于测试 sed 的 shell 脚本 testsed 2. sed 永久性改动的 shell 脚本 runsed 四、sed 脚本的四种典型应用 1. 对同一文件的多重编辑 2. 改变一组文件 3. 提取文件内容 (1)提取宏定义脚本 getmac (2)生成提纲的脚本 do.outline 4.