Bash脚本学习:AWK, SED

2023-09-17 16:53:39

1. AWK

AWK 是一种编程语言,设计用于处理文件或数据流中基于文本的数据,或者使用 shell 管道。 可以将 awk 与 shell 脚本结合使用或直接在 shell 提示符下使用。
在这里插入图片描述

  • 以上展示使用AWK分别打印第一个位置变量和第二个位置变量。

建立一个文档 csvtest.csv。
文档内容为:
one, two, three

awk -F, '{print $1}' csvtest.csv

输出为:one

  • 提取并打印每一行的第一个字段
  • -F,:这是awk命令的选项,用于指定字段分隔符。在这里,-F, 表示字段之间使用逗号,作为分隔符,因为CSV文件中通常使用逗号来分隔不同的字段。
echo "Just get this word: Hello" | awk '{print $5}'
  • 以上打印第5个字段,即是"Hello"。
echo "Just get this word: Hello" | awk -F: '{print $2}' | cut -c2-
  • -F:选项指定了字段分隔符为冒号:,然后’{print $2}'表示打印第二个字段。
  • cut -c2-:最后,cut命令被用于删除输出中的第一个字符(即空格)。-c2-选项表示从第二个字符开始截取到末尾,因此最终的输出是:“Hello”。
 echo "Just get this word: Hello" | awk -F: '{print $2}' | cut -c2
  • cut -c2:最后,cut命令被用于提取输出中的第二个字符,即字母"H"。-c2选项表示提取第二个字符。

2. SED

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
在sedtest.txt文本中,输入文件内容:
The fly flies like no fly flies.
A fly is an insect that has wings and a fly likes to eat leftovers.

在指令行:

sed 's/fly/grasshopper/g' sedtest.txt

输出为:
The grasshopper flies like no grasshopper flies.
A grasshopper is an insect that has wings and a grasshopper likes to eat leftovers.

  • 以上使用s/old_text/new_text/g的编辑格式,其中old_text是要查找的文本,new_text是要替换成的文本,而g表示全局匹配,即查找并替换每个匹配的实例。在这个命令中,它将所有出现的"fly"替换为"grasshopper"。
sed -i.ORIGINAL 's/fly/grasshopper/g' sedtest.txt
  • -i.ORIGINAL:这是sed命令的选项,它表示进行原地编辑,并且将原始文件备份为.ORIGINAL的扩展名。这意味着在编辑文件之前,sed会先创建一个备份文件,以防止意外的数据损坏。

所以现在有两个文件:
① sedtest.txt.ORIGINAL
The fly flies like no fly flies.
A fly is an insect that has wings and a fly likes to eat leftovers.

② sedtest.txt
The grasshopper flies like no grasshopper flies.
A grasshopper is an insect that has wings and a grasshopper likes to eat leftovers.

更多推荐

【无标题】

文章目录ListView是怎么渲染的?ListView怎么做到控制性能?_ViewportElementRenderViewport先从这一块朴素的代码开启我们的旅程:ListView.builder(itemBuilder:((context,index){returnListTile(title:Text("thi

【PyTorch 攻略 (3/7)】线性组件、激活函数

一、说明神经网络是由层连接的神经元的集合。每个神经元都是一个小型计算单元,执行简单的计算来共同解决问题。它们按图层组织。有三种类型的层:输入层、隐藏层和输出层。每层包含许多神经元,但输入层除外。神经网络模仿人脑处理信息的方式。二、神经网络的组件激活功能确定是否应该激活神经元。神经网络中发生的计算包括应用激活函数。如果一

循环神经网络——下篇【深度学习】【PyTorch】【d2l】

文章目录6、循环神经网络6.7、深度循环神经网络6.7.1、理论部分6.7.2、代码实现6.8、双向循环神经网络6.8.1、理论部分6.8.2、代码实现6.9、机器翻译6.9.1、理论部分6.10、编码器解码器架构6.10.1、理论部分6、循环神经网络6.7、深度循环神经网络6.7.1、理论部分设计多个隐藏层,目的是为

科技云报道:分布式存储红海中,看天翼云HBlock如何突围?

科技云报道原创。过去十年,随着技术的颠覆性创新和新应用场景的大量涌现,企业IT架构出现了稳态和敏态的混合化趋势。在持续产生海量数据的同时,这些新应用、新场景在基础设施层也普遍基于敏态的分布式架构构建,从而对存储技术提出了新的要求。正因如此,分布式存储凭借高安全性、可靠性、可用性、易于扩展等特性,在敏态业务中得到了快速发

python安全工具开发笔记(五)——python数据库编程

一、PythonDBAPI在没有PythonDBAPI之前:有PythonDBAPI之后:PythonDBAPI包含内容PythonDBAPI访问数据库流程二、PythonMysql开发环境三、Python数据库编程实例数据库连接对象connection连接对象:建立Python客户端与数据库的网络连接创建方法:MyS

影响服务器稳定性的因素:

影响服务器稳定性的因素:1、服务器配置。配置是影响稳定性的因素之一,包括cpu、内存、带宽、硬盘、操作系统等,配置低了无法支撑网站服务器的正常运行,卡顿、崩溃,就会影响到服务器的稳定性。2、恶意GJ。如果服务器遭受了ddoslcc等恶意流量GJ,也会影响到服务器的稳定性,假如服务器没有搞好安全防范对策,非常容易因DDo

Linux —— 线程

目录一,线程概念二,Linux进程与线程三,Linux线程控制创建线程线程终止线程等待线程分离linux线程互斥一,线程概念在一程序内,一个执行路线称为线程thread,即线程是一个进程内部的控制序列;一切进程至少都有一个执行线程;线程在进程内部运行,本质是在进程地址空间内运行;在Linux系统中,CPU看到的PCB都

【校招VIP】前端JS之深拷贝和浅拷贝

考点介绍js中的浅拷贝和深拷贝,只是针对复杂数据类型(Objcet,Array)的复制问题。简单来讲浅拷贝和深拷贝都可以实现在原有对象的基础上再生成一份的作用。但是根据新生成的对象能否影响到原对象可以分为浅拷贝和深拷贝。前端JS之深拷贝和浅拷贝-相关题目及解析内容可点击文章末尾链接查看!一、考点题目1.实现浅拷贝的方法

RenderDoc基础类 + Python“基础”代码

这应该是国内第一份甚至是唯一份讲renderDoc的免费二开的文档,基于Python,Qt等(这是一个冷门的学科,本身做TA比例就只有1/10,技术TA的比例又1/10,然后会做工具几年资历的又1/10,假如1000个观众,应该只有1个观众会往下看,谢谢观看!!)RenderDoc生命周期和常用类qdCaptureVi

webpack、vue.config.js

一、webpack学习简述webpack是一个静态资源打包工具,它会以一个或多个文件作为打包的入口,将我们整个项目的文件编译组合成一个或多个文件输出出去。输出的文件就是编译好的文件,可以运行在浏览器中。一般的我们将webpack输出的文件叫做bundle为什么需要打包工具随着现在前端技术的发展,我们会使用各种框架(Vu

化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设

化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。随着计算机网络应用的不断涌现,计算机的时间同步问题成为愈来愈重要的事情。以Unix系统为例,时间的准确性几乎影响到所有的文件操作。如果一台

热文推荐