sed & bash 学习手记(1)

Bash语言的学习路线 Shell作为用户与操作系统之间的中介,接收用户输入的命令,并将其传递给内核进行处理,然后将处理结果返回给用户。除了执行命令,Shell还可以进行文件管理、程序控制和脚本编程等。Bash语言是一门功能强大且实用的编程语言,对于每一位Linux用户来说都应该认真学习。通过本文提供的学习路线和实践建议,希望能够帮助你从一个对Bash一无所知的新手成长为熟练的使用者。掌握了Bash,不仅能够提高你的工作效率,还能在编程、运维等多个领域中游刃有余。 阅读详情


1. 关于 -n 的说明

The default operation of sed is to output every input line. The -n option suppresses the automatic output. When specifying this option, each instruction intended to produce output must contain a print command, p. Look at the following example.


2. debian 下读取指定软件包的所有信息(实质上是读取相邻两个空行之间的所有数据)


    sed -n '/^Package: libc6-udeb/{:next;N;//n$/!b next;p}' Packages
   
    PS: 每 N 一行,缓冲区会加入 /n<newline> ,当读入一空行时,缓冲区的最后一个字符就是 /n

3. 读取所有软件包的名字


    sed -n 's/^Package: /(.*/)//1/p' Packages

    PS: /1 表示保留 pattern 中第一个子模式,即匹配括号中模式的予以保留

4. 提取含有特定信息的数据块(比如获取所有 gnome 用到的包)


    sed '/^Package:/{:next;N;//n$/!b next;/Section: gnome/b;d}' Packages

5. sed 中使用 bash 中定义的变量


    sed -n "/^Package: $file/{:next;N;//n$/! b next;p}" Packages

    PS: 注意 sed 的命令部分是用“”括起来的,这样可以引用 bash中定义的变量 file;另外!和 b之间        要留有空格否则bash 会报错,因为在bash中!有特殊用途。

Sed命令学习总结 本文详细介绍了sed命令的使用方法,主要包括四部分内容:1)常用命令如插入、删除、替换等;2)替换标记的使用;3)正则表达式元字符集;4)实用操作示例,包括文本替换、范围处理、文件读写等。重点讲解了sed的各种参数组合和典型应用场景,如-i直接修改文件、-n静默模式、-e多命令执行等。通过大量实例展示了如何利用sed进行高效文本处理,包括行操作、模式匹配、缓冲区使用等技巧,为Linux环境下文本处理提供了全面的参考指南。 阅读详情

相关推荐

Linux下的文本处理--sed & grep & awk

在系统维护的日常工作,很多时候需要对日志文件、配置文件等文本文件进行处理。利用文本处理工具可以很方便快速的在体量很大的文件中截取出想要文本,掌握一些常用的 Linux 文本处理命令是非常有必要的

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 886

sed中&符号的作用详解

**sed中&amp;符号的作用详解sed替换中&amp;符号,经常用来在原文本行中增加字符串。下面通过两个实例讲解&amp;符号的作用**实例一:优化开机自动启动服务(不允许用循环语句)。要求开机自动服务只允许network、crond、sshd、rsyslog、iptables、sysstat这几个服务在三运行级别启动,其它服务都关闭。解答:第一步筛选出我们想要关闭的服务...

weixin_34191734的博客 2370

BASH解析网HTML的尝试

 ##起因:##   每天都要用浏览器查看天气预报,然后用手机发给家里。   中国天气网的页面上有许多不必要的信息,正好最近在学习Liunx命令,就想用bash实现对网页信息解析只显示天气信息。 ------ ##思路: 1. 利用wget下载网页到本地 2. 利用grep找到所需信息所在行号 3. 按照行号读取相应行 4. 再次用grep得到纯

u010528745的专栏 1678

BASH学习笔记——sed

1. Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等

gnuhpc的专栏 1534

Bash语言的字符串处理

在Bash中,字符串是由一系列字符组成的,可以用单引号()、双引号()或不带引号的形式表示。bash' # 单引号" # 双引号str3=Hello # 不使用引号需要注意的是,单引号中的内容会被完全当作字面量,不会进行任何变量替换;而双引号中的内容则可以进行变量替换和命令替换。在Bash中,定义字符串变量的方式非常简单。使用进行赋值,不需要符号。引用变量时则需要在变量名前添加符号。bashecho $name # 输出: Alice可以利用Bash函数来封装字符串处理逻辑,提升代码的可重用性。

2501_90199801的博客 490

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3758

bash sed /s 命令

它使用 REGEXP 去匹配行,将匹配到的那部分字符替换成 REPLACEMENT。FLAGS 是 "s"命令的修饰符,常见的有"g"、"p"和"i"或"I"。这是 sed 用的最多的命令。两个字就能概括其功能:替换。将匹配到的内容替换成指定的 内容。"s"命令的语法格式为:其中"/"可以替换成任意其他单个字符。

539

CTF-Web习题:2019强网杯 UPLOAD

本题涉及知识点:代码审计、文件上传漏洞、反序列化漏洞

LJW123487的博客 1901

bash命令: sed的使用

如:[abc] 匹配a、b或c,还有 [a-zA-Z] 所有大小写字母,^表示取反,如 [^a] 表示非a的字符,[0-9]表示1位数字0~9。sed处理数据的时候先将数据读取到Pattern Space,然后用sed命令对数据做处理,如果没有指定-n选项的话,最后会把Pattern Space内容输出。n是读取下一行覆盖Pattern Space,如果覆盖前没有输出,相当于丢一行。h: 将pattern space中的内容拷贝到hold space中,原来的hold space里的内容被清除。

你若盛开,清风自来 980

全能扫描王的实现(python版本)- 目标检测图像矫正

全能扫描王python代码实现,可用于文件扫描或者是图像校正

搬砖猛女的啃书历程 5487

「转载」vaptcha 等手势验证码图像识别与轨迹提取(思路)

作者:文安哲 从博客重开以后就说要更文章,鸽了蛮久了,赶紧补上一篇嫖嫖各位老公的流量。 最近看群里面大家讨论研究手势验证码比较多,然后我也顺带研究做了一下,给各位老公们分享一下做的过程。 首先,一起来康康手势验证码长啥样! 大概就是长这个样子,需要按照图像中的那条轨迹再图片上滑动,不得不说这类验证码确实体验感拉满,让人很想立马关掉这个网站。 那么言归正传,这类验证码该怎么做识...

AI悦创·编程私教1v1 3596

sed & awk 第二版学习(一)—— sed 与 awk 基本操作

sed 与 awk 基本操作

wzy0623的专栏 1340

Oracle到金仓数据库信创改造迁移实施规划方案

**性能测试和优化**:对金仓数据库的性能进行测试,根据业务负载情况进行必要的调优,确保系统能够稳定高效运行。- **数据兼容性**:评估Oracle数据库中的数据结构和金仓数据库的兼容性,明确需要重构的数据模型。- **性能测试**:通过对金仓数据库的性能测试,预估在实际业务环境下的表现,是否能达到业务需求。- **工具选择**:选择适合的迁移工具,如金仓数据库提供的迁移工具,能够提升迁移效率和准确性。- **全面迁移**:在初步迁移成功后,进行全面数据迁移,确保所有数据完整迁移到金仓数据库上。

hdrhdrjdididrr的博客 480

一个用sed给xml的标签编号的Bash脚本

记录一下这个小脚本,试探了很久才研究出这个方法来给我的一个xml文件编号。这个文件最初是从博客上直接复制粘贴下来的,根据其格式先对其html tag替换做好标记,然后用一句sed转换成xml的:cat susan.txt|sed -e s/title/(.*/)$//r/n/r/n/r/n/1/|sed -e s/timestamp/(.*/)//1/r/n/|sed -e s/[ ]+

Utensil的专栏 2442

CentOS 7下glibc升级到2.28的保姆级避坑指南(含GCC 7.3.1编译配置)

本文详细介绍了在CentOS 7系统中将glibc升级到2.28版本的完整流程,包括GCC 7.3.1的编译配置、环境变量设置、glibc编译的细节处理以及生产环境验证。文章特别强调了风险控制和避坑技巧,适用于需要提升系统兼容性的企业级用户。

weixin_29611239的博客 408

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1567

shell使用技巧(bash、grep、sed、awk)

EOF和Expect的使用技巧 https://blog.youkuaiyun.com/weixin_45551608/article/details/117118827

u010533742的博客 111

Matlab之机载雷达系统中的空时自适应处理(STAP)技术(附源码)

在第一个脉冲期间,天线 1 通过天线 N-1 接收的杂波返回与第二个脉冲期间天线 2 通过天线 N 接收的杂波返回相同。该算法可能需要搜索角度和多普勒的所有组合来定位目标,但对于示例,由于确切知道目标的位置,因此可以将处理器定向到该点。然而,接收到的信号不仅包含来自目标的反射回波,还包含来自被照亮地表的回波。然而,由于干扰器的白噪声性质,接收到的干扰信号占据了整个多普勒频段。在以下部分中,您将模拟来自目标、杂波和干扰器的返回,并说明 STAP 技术如何过滤来自接收信号的干扰。假设元件间距是波形波长的一半。

珞瑜的博客 7135

bash编程之: Sed流文本编辑

执行步骤: 1. 取一行内容到模式空间 2. 针对模式空间中的内容执行编辑命令 3. 将模式空间中的内容进行输出 4. 清空模式空间 5. 取下一行内容     用法:sed OPTIONS... [SCRIPT] [INPUTFILE...] -r: 使用扩展的正则表达式;  -n, --quiet, --silent: 不输出模式空间的内容; -i:直接编辑原文件; ...

iteye_19838的博客 256

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

sed超实用的文本处理工具

sed命令如何使用?sed匹配想要的行,sed后向引用、区间匹配、无需打开vim编辑文件。 sed替换字符串

qq_73797346的博客 812

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

sed & awk

看到过的最好的一个讲解sed &amp; awk的PPT http://www.cs.nyu.edu/~mohri/unix08/lect5.pdf 现在制作一个自己的版本的ls sed_ls_fmt s/^d/dir /1 s/^-/file /1 s/\([rwxs-]\{3\}\)\([rwxs-]\{3\}\)\([rwxs-]\{3\}\)/\1 \2...

weixin_34192816的博客 375

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

shell & sed

Shell算术运算 1. let c=$A+$B 2. c=$[$A+$B] 3. c=$(($A+$B)) 4. expr 表达式中要有空格,oprand opcode 命令引用 c=`expr $A + $B` 程序: 执行结果 执行状态结果 程序返回0 执行成功,非零出错 uid=0(root) gid=0(root) groups=0(root) exit:退出脚本 if 0...

power_to_go 170

sed技巧

sed的强大功能远远超过普通人的想象。网址http://sed.sourceforge.net/给出了一些关于sed的介绍。尤其是http://sed.sourceforge.net/sed1line.txt给出了如何在命令行里面充分发挥sed功能的一些实例。中文版可以在这个链接里面找到。下面给出一些小小的补充。打印制定个数的字符$sed ":loop; s/^./{0,50/}$

1944

sed命令详解+示例(1),开发8年的老Linux运维才知道

每行文本拆分为“第1个字符”、“第2个字符”、“剩下的所有字符”三个部分,然后通过替换操作重排顺序为“2-1-3”:# sed -r ‘s/^(.)(.)(.*)/\2\1\3/’ nssw.txt。调整/var/ftp/pub目录权限,允许ftp写入;将第一个字符与最后一字符对调:sed -r “s/^(.)(.)(.*)(.)(.)$/\1\4\3\2\5/” nssw.txt。# sed -i ‘/^id:/s/3/5/’ /etc/inittab //将默认运行级别修改为5。

1505
上一篇: 席慕容经典情诗
下一篇: 深入学习李敖大师三校讲话精神,为争取更大的自由而努力!
Jack Tan
博客等级 码龄22年 28粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值