sed和awk

sed和awk

文章目录

  • sed和awk
    • sed
    • awk

grep就是查找文件中的内容,扩展正则表达式

sed

sed是一种流编辑器,一次处理一行内容(增删改查)

如果只是展示,会放在缓冲区(模式空间),展示结束之后,会从模式空间把操作结果删除

一行一行处理,处理完当前行,才会处理下一行,直到文件末尾

sed的命令格式和操作选项

sed -e ‘操作符’ -e ’操作符 文件一文件二‘

-e表示多个操作符,只有一个操作,可以省略

sed -e’操作符1;操作符2’ 文件1 文件二

选项:

-e:用于执行多个操作命令

-f:在脚本中定义好操作符,然后根据脚本内容的操作符对文件进行操作

-i:直接修改目标文件(慎用)

-n:仅显示script处理后的结果(不加-n,sed会有两个输出结果,加了-n之后就会把默认输出屏蔽掉《显示一个结果)

p :打印结果

r:扩展正则表达式

s:替换,替换字符串

g:替换全部

c:替换,替换行

y:替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致

d:删除,删除行

a:增加,在指定行的下面一行插入内容

i:增加,在指定行的上面一行插入内容

r:在行后增加文本内容

$a:在最后一行插入新的内容

$i:在倒数第二行插入新的内容

$r:读取其他文件的内容,然后插入到对象文件的最后一行

打印功能

寻址打印

sed -n ‘=;p’、

打印最后一行加$

行号范围打印

sed -n ‘2;4p’ 2-4行

sed -n ‘2p;4p’ 只打印第二行和第四行

打印奇数行和偶数行

sed -n ‘n;p’

n的作用跳过一行,打印下一行

对文本内容进行过滤 都要有//

sed -n ‘/a/p’ test1

/a :是要过滤的内容

/p:还是打印

使用正则表达式对文本内容进行过滤

扩展正则

小题

如何免交互删除文本内容

sed -i ‘d’ 文件名 :删除文件里的内容

cat /dev/null > 文件名

这是文件黑洞

如何免交互的方式删除空行

grep -v ‘^$’ 文件名

cat test.txt |tr -s “\n”

sed ‘/^$/d’ 文件名

在这里插入图片描述

sed的删除操作

sed -n ''行数d,

!是取反

替换字符串

/l把大写转为小写

sed -in '1,3d|5d;p' test1 
[root@test1 opt]# sed -n 's/root/test/gp' /etc/passwd
test:x:0:0:test:/test:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin

对字母进行替换

l&把大写转为小写

u&把小写转为大写

 sed 's/[a-z]/\u&/' test1  转换首字母大写的特殊模式Mlmv
Vdfkgvmm
Dsdfs
Cvaggrva
Sdvcvcxz
Sdfaea
全部换为大写
sed 's/[a-z]/\u&/g' test2
MLMV
VDFKGVMM
DSDFS
CVAGGRVA
SDVCVCXZ
SDFAEA

大写换小写

sed 's/[A-Z]/\l&/' test3
iLDFLV
sDLFFS
nVLC;MA
nVLAO
[root@test1 opt]# sed 's/[A-Z]/\l&/g' test3
ildflv
sdlffs
nvlc;ma
nvlao

使用sed对字符串的位置进行互换

 echo chengqianshuai | sed -r 's/(cheng)(qian)(shuai)/\3\1\2/'
shuaichengqian

试题

cat test4 | sed -r 's/(.*)-(.*)(\.jar)/\2/'
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5

打印指定时间的日志

se

sed -n '/Jun 21 11:00:01/,/Jun 21 12:50:01/p' /var/log/messages
Jun 21 11:00:01 test1 systemd: Started Session 385 of user root.
Jun 21 11:01:01 test1 systemd: Started Session 386 of user root.
Jun 21 11:10:01 test1 systemd: Started Session 387 of user root.
Jun 21 11:20:01 test1 systemd: Started Session 388 of user root.
Jun 21 11:30:01 test1 systemd: Started Session 389 of user root.
Jun 21 11:40:01 test1 systemd: Started Session 390 of user root.
Jun 21 11:50:01 test1 systemd: Started Session 391 of user root.
Jun 21 12:00:01 test1 systemd: Started Session 392 of user root.
Jun 21 12:01:01 test1 systemd: Started Session 393 of user root.
Jun 21 12:10:01 test1 systemd: Started Session 394 of user root.
Jun 21 12:20:01 test1 systemd: Started Session 395 of user root.
Jun 21 12:30:01 test1 systemd: Started Session 396 of user root.
Jun 21 12:40:01 test1 systemd: Started Session 397 of user root.
Jun 21 12:50:01 test1 systemd: Started Session 398 of user root

d的主要作用就是对文本的内容进行层删改查

强大的就是改和层

使用脚本形式,结合sed命令,把pxe自动装机做一个自动化部署的脚本

sed -r ‘s/#(ddns.+)/\1/’ l1.sh

sed -r ‘s/\b[^/s]/\u&/g’ l1.sh

awk

grep 查

sed 增删改查 增该

awk 按行取列

awk 默认的分隔符:空格,tab键,多个空格自动压缩成一个

awk {print}

awk的原理,根据指令信息,逐行的读取文本内容,然后按照条件进行格式化输出

awk的选项:

-F 指定分隔符,默认就就是空格

-v 变量复制

内置变量

$#:按行需要取出的第几个字段

$0:打印所有,展示所有文本内容(默认)

NR:需要处理的行号

NF:处理行的字段字数,$NF:当前行的最后一个字段

FS:FS和F是一样的,都是指定分隔符,-F:FS=“.“

OFS:指定输出内容的分隔符

RS:行分隔符,可以根据RS的设置吧文件内容切割成多个记录,也可以改变行的分隔符,默认可以改变行的分隔符,默认是\n 换行

命令格式

awk -F '操作符{动作}'处理对象

-F 指定分隔符,如果是空格可以不加

动作默认就是打印

awk ‘{print}’

打印行号

awk ‘{print NR,$0}’ 文件明

打印指定行

awk ‘NR==3{print}’ 文件名

awk ‘NR3,NR5{print}’ 3-5行

awk ‘NR3;NR5{print}’ 只有三行和五行

打印奇偶行

awk ‘NR%2==0{print}’ 偶数

awk ‘NR%2==1{print}’ 奇数

指定分隔符

awk -F:'{print $3}' 这是提取第三列的内容

提取1-3第三列

awk -F: 'NR==1,NR==3 {print $3}' /etc/passwd
0
1
2

只要第三行第三列的内容

在这里插入图片描述

awk怎么使用文本过滤

awk ‘/root/{print}’ /etc/passwd

awk ‘/^root/{print}’ /etc/passwd

awk ‘/bsah$/{print}’ /etc/passwd

BEGIE打印模式

awk ‘BEGIE{…};{…}END{…}’

BEGIE{…}预先的条件,指定awk命令前的初始化操作

{…} 处理条件,如何多初始值进行操作

END{…} 处理完之后的操作,一般都是打印

区幂运算

awk ‘BEGIE{x=0};{x++};END{print x}’ 文件名

在这里插入图片描述
在这里插入图片描述
-v来进行赋值
在这里插入图片描述
RS替换分隔符
在这里插入图片描述
awk的条件判断打印

awk -F : ‘$3>900{print $0}’

在这里插入图片描述
awk的三元表达式:
if
else语句

在这里插入图片描述

num=($3>$4)?$3:$4

? if

:else

; fi

if ($3>$4)

echo $3

else

echo $4

fi

awk的精确筛选

$n(><==) 用于比较数值

$n~‘‘字符串’’:该字段包含某个字符串

$n!~‘‘字符串’’:该字段不包含某个字符串

$n==‘‘字符串’’:该字段等于这个字符串

$NF 代表最后一个字符

 $1 $NF是产看第一行到最后一行awk -F: '$7~"bash" {print $1,$NF}' /etc/passwd
root /bin/bash
test1 /bin/bash
dn /bin/bash
mfq /bin/bash
mfq1 /bin/bash
mf1 /bin/bash
fd /bin/bash
xy102 /bin/bash

取列 没有直接范围 要自己把范围加上

awk -F: '$7~"bash" {print $1,$2,$3}' /etc/passwd
root x 0
test1 x 1000
dn x 1001
mfq x 1002
mfq1 x 1003
mf1 x 1004
fd x 1005
xy102 x 1006
[root@test2 opt]# awk -F: '$7~"bash" {print $1,$2}' /etc/passwdroot x
test1 x
dn x
mfq x
mfq1 x
mf1 x
fd x
xy102 x

取反

awk -F: '$7!~"bash" {print $1,$2}' /etc/passwd
awk -F: '$7!="/bin/bash" {print $1,$2}' /etc/passwd

逻辑关系

/etc/passwd 第一列=dn 第七列是 、/bin/bash

在这里插入图片描述

且和或
awk -F: '($1=="dn")&&($NF=="/bin/bash"){print $1,$NF}' /etc/passwd
dn /bin/bash
[root@test2 opt]# awk -F: '($1=="ntp")||($NF=="/bin/bash"){print $1,$NF}' /etc/passwd
root /bin/bash
ntp /sbin/nologin
test1 /bin/bash
dn /bin/bash
mfq /bin/bash
mfq1 /bin/bash
mf1 /bin/bash
fd /bin/bash
xy102 /bin/bash

提取nginx目录下的ip
在这里插入图片描述

curl获取和发送数据

获取网页内容并输出

-O 下载文件到本地

-o 将文件下载到指定路径

-x 发送post请求

-i 获取web软件的版本

awk 按行取列

awk的精确筛选

awk的运算符

取小数点几位以及 小数点运输怎么取整

在这里插入图片描述

etc/目录大小求和
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/359816.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向对象六大设计原则--依赖倒置

目录 六大原则 定义 概念 Java语言中的表现 优点 在设计模式中体现 工厂方法模式 观察者模式 状态模式 示例 手机模块设计 五个示例 一、读取数据 二、发送消息 三、支付方式 四、日志记录 五、数据持久化 使用汽车驾驶进行说明 依赖的三种写法 1.构造函数…

毫米波移动通信系统中的波束赋形— 基于码本的波束训练

基于码本的波束训练算法该方法在收发端都配置波束矢量的码本&#xff0c;通过波束搜索的方式发现最优的波束方向为了加快波束搜索的速度&#xff0c;往往采用逐步缩小搜索范围的方式加快搜索&#xff0c;可以将搜索算法的时间复杂度从O(N)降低到O(logN)&#xff0c;其中N表示码…

AI绘画Stable Diffussion 实操教程: 真人图片秒变动漫风,亲手绘制你的专属动漫头像

大家好&#xff0c;我是向阳 你是否曾幻想过自己置身于动漫世界&#xff0c;拥有那些令人羡慕的二次元特征&#xff1f;随着人工智能技术的飞速发展&#xff0c;这一幻想已不再遥不可及。在本文中&#xff0c;我们将一起揭开Stable Diffusion技术的神秘面纱&#xff0c;探索如…

海南聚广众达电子商务咨询有限公司抖音开店怎么样?

在数字化浪潮汹涌的当下&#xff0c;电商行业正迎来前所未有的发展机遇。作为抖音电商服务领域的佼佼者&#xff0c;海南聚广众达电子商务咨询有限公司凭借其专业的服务团队和前瞻的战略眼光&#xff0c;成为了众多品牌和商家在抖音平台上实现业务增长的重要合作伙伴。今天&…

Mac清理系统数据小技巧,告别卡顿烦恼 苹果电脑清理内存怎么清理

任何使用Mac的用户都会同意&#xff1a;没有什么比一台运行缓慢的电脑更能消磨人的耐心了。那些无休止的彩球旋转、程序响应迟缓、突然的系统冻结&#xff0c;这一切都让人想抓狂&#xff01;但别担心&#xff0c;这里有一些简单的Mac清理系统数据小技巧和CleanMyMac X的神助攻…

养车小程序系统源码,汽修源码,仿途虎养车系统源码,车辆保养小程序系统

用户端&#xff0b;商家端&#xff0b;师傅端 功能介绍: 支持下单上门服务、到店核销&#xff0c;支持单独选择项目、 也支持选择服务人员、和选择门店多种下单方式&#xff0c; 支持上门服务和到店核销两种服务方式&#xff0c;支持自营和多商家联营两种运营模式&#xff…

编译原理大题自解(活前缀DFA、LR(0)分析表)

目录 4. (简答题) &#xff08;1&#xff09;给出识别活前缀的DFA &#xff08;2&#xff09;设计此文法的 LR(0)分析表 第一种解法 第二种解放 首先声明这是作者的写法&#xff08;不保证正确&#xff01;&#xff09;仅供参考。本题因为可能存在冲突的原因&#xff0c;所…

centos 7无需token编译安装freeswitch 1.10.11 ——筑梦之路

准备工作 安装编译工具和依赖包 yum update -y sudo yum install epel-release vim tcpdump net-tools.x86_64 -y sudo yum install gcc-c sqlite-devel zlib-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel openssl-devel git -y yum install yasm n…

强化安全新篇章:韶关石油化工可燃气体报警器年检解析

韶关&#xff0c;这座位于广东省北部的城市&#xff0c;近年来在石油化工行业取得了显著的发展。 随着一批批大型石化企业的进驻和投产&#xff0c;韶关不仅成为了区域性的石化产业基地&#xff0c;也为地方经济带来了强劲的增长动力。 然而&#xff0c;随着石化产业的快速发…

RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-06-19)

【说明】 1、RTX5全家桶的优势就是简单易用&#xff0c;初学的话&#xff0c;上手很快&#xff0c;稳定性也是杠杠的&#xff0c;且容易做稳定。 2、同时RTX5也是有汽车级&#xff0c;工业级&#xff0c;医疗和铁路安全认证&#xff0c;只是安全级别比ThreadX要稍微低些。 3…

Redis-哨兵模式-主机宕机-推选新主机的过程

文章目录 1、为哨兵模式准备配置文件2、启动哨兵3、主机6379宕机3.4、查看sentinel控制台日志3.5、查看6380主从信息 4、复活63794.1、再次查看sentinel控制台日志 1、为哨兵模式准备配置文件 [rootlocalhost redis]# ll 总用量 244 drwxr-xr-x. 2 root root 150 12月 6 2…

自学C语言-10

第10章 指针 指针是C语言的一个重要组成部分&#xff0c;是C语言的核心、精髓所在。用好指针&#xff0c;可以在C语言开发中起到事半功倍的效果。一方面&#xff0c;可以提高程序的编译效率、执行速度&#xff0c;以及动态存储分配&#xff1b;另一方面&#xff0c;可使程序更加…

HTML播放flv

页面效果&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

Springboot开发Webservice服务端和客户端

环境说明 Java JDK 1.8、Spring boot 2.1.6、Apache CXF 3.1.6 POM依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.6</version&…

Facebook与地方文化:数字平台的多元表达

在当今数字化时代&#xff0c;社交媒体不仅仅是人们交流的工具&#xff0c;更是促进地方文化传播和表达的重要平台。作为全球最大的社交网络之一&#xff0c;Facebook在连接世界各地用户的同时&#xff0c;也成为了地方文化多元表达的重要舞台。本文将深入探讨Facebook如何通过…

【MySQL】数据库——事务

一.事务概念 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#xff0c;要么都不执行事务是一个不可分割的工作逻辑单元&#xff0c;在数…

【漏洞复现】脸爱云一脸通智慧管理平台 SystemMng 管理用户信息泄露漏洞(XVE-2024-9382)

0x01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大&#xff0c;运行稳定&#xff0c;操作简单方便&#xff0c;用户界面美观&#xff0c;轻松统计数据的一脸通系统。无需安装&#xff0c;只需在后台配置即可在浏览器登录。 功能包括:系统管理中心、人员信息管理中心、设备…

git clone自己的私有仓库

大家好&#xff0c;今天来教大家一个简单实用的操作——如何在自己的电脑上git clone自己的私有仓库。无论是工作还是学习&#xff0c;我们都可能会用到GitHub这样的代码托管平台来管理我们的项目&#xff0c;那么如何快速、安全地将这些项目下载到本地呢&#xff1f;下面就是详…

Web服务器与Apache(LAMP架构+搭建论坛)

一、Web基础 1.HTML概述 HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语音,用于创建和组织Web页面的结构和内容&#xff0c;HTML是构建Web页面的基础&#xff0c;定义了页面的结构和内容&#xff0c;通过标记和元素来实现 2.HTML文件结构 <html>…

Zoho邮箱怎么注册?最强完整指南

Zoho企业邮箱&#xff0c;凭借其16年的产品历程和卓越的服务品质&#xff0c;已经成为全球超过1800万企业级客户的信赖之选。今天&#xff0c;我们将手把手教你如何注册Zoho邮箱。 一、Zoho邮箱是什么&#xff1f; Zoho邮箱是Zoho Workplace套件中的核心产品&#xff0c;专门…