shell sed脚本速查

2024-05-08 15:08
文章标签 shell 脚本 速查 sed

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

 

删除

#删除首行前10个字符
sed -i 's/^.\\{10\\}//' test1.txt.bak1# 在每一行后面增加一空行
sed G# 将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文本中每一行后面将有且只有一空行。
sed '/^$/d;G'# 将第一个脚本所产生的所有空行删除(即删除所有偶数行)
sed 'n;d'# 将每一行前导的“空白字符”(空格,制表符)删除 使之左对齐
sed 's/^[ t]*//'                # 见本文末尾关于't'用法的描述# 将每一行拖尾的“空白字符”(空格,制表符)删除
sed 's/[ t]*$//'                # 见本文末尾关于't'用法的描述# 将每一行中的前导和拖尾的空白字符删除
sed 's/^[ t]*//;s/[ t]*$//'

插入

# 在每一行后面增加两行空行
sed 'G;G'# 在每一行后面增加两行空行
sed 'G;G'# 在匹配式样“regex”的行之前插入一空行
sed '/regex/{x;p;x;}'# 在匹配式样“regex”的行之后插入一空行
sed '/regex/G'# 在匹配式样“regex”的行之前和之后各插入一空行
sed '/regex/{x;p;x;G;}'# 在每一行开头处插入5个空格(使全文向右移动5个字符的位置)
sed 's/^/     /'# 以79个字符为宽度,将所有文本右对齐
sed -e :a -e 's/^.{1,78}$/ &/;ta'  # 78个字符外加最后的一个空格# 以79个字符为宽度,使所有文本居中。在方法1中,为了让文本居中每一行的前
# 头和后头都填充了空格。 在方法2中,在居中文本的过程中只在文本的前面填充
# 空格,并且最终这些空格将有一半会被删除。此外每一行的后头并未填充空格。
sed -e :a -e "s/^.\\{1,77\\}$/ & /;ta"
sed  -e :a -e 's/^.{1,77}$/ & /;ta'                     # 方法1
sed  -e :a -e 's/^.{1,77}$/ &/;ta' -e 's/( *)1/1/'  # 方法2

编号

# 为文件中的每一行进行编号(简单的左对齐方式)。这里使用了“制表符”(tab,见本文末尾关于't'的用法的描述)而不是空格来对齐边缘。
sed = filename | sed 'N;s/n/t/'# 对文件中的所有行编号(行号在左,文字右端对齐)。
sed = filename | sed 'N; s/^/     /; s/ *(.{6,})n/1  /'# 对文件中的所有行编号,但只显示非空白行的行号。
sed '/./=' filename | sed '/./N; s/n/ /'# 计算行数 (模拟 "wc -l")
sed -n '$='

文本转换和替代

# Unix环境:转换DOS的新行符(CR/LF)为Unix格式。
sed 's/.$//'                     # 假设所有行以CR/LF结束
sed 's/^M$//'                    # 在bash/tcsh中,将按Ctrl-M改为按Ctrl-V
sed 's/x0D$//'                  # ssed、gsed 3.02.80,及更高版本# Unix环境:转换Unix的新行符(LF)为DOS格式。
sed "s/$/`echo -e \\r`/"        # 在ksh下所使用的命令
sed 's/$'"/`echo \\r`/"         # 在bash下所使用的命令
sed "s/$/`echo \\r`/"           # 在zsh下所使用的命令
sed 's/$/r/'                    # gsed 3.02.80 及更高版本# DOS环境:转换Unix新行符(LF)为DOS格式。
sed "s/$//"                      # 方法 1
sed -n p                         # 方法 2# DOS环境:转换DOS新行符(CR/LF)为Unix格式。
# 下面的脚本只对UnxUtils sed 4.0.7 及更高版本有效。要识别UnxUtils版本的
#  sed可以通过其特有的“--text”选项。你可以使用帮助选项(“--help”)看
# 其中有无一个“--text”项以此来判断所使用的是否是UnxUtils版本。其它DOS
# 版本的的sed则无法进行这一转换。但可以用“tr”来实现这一转换。
sed "s/r//" infile >outfile     # UnxUtils sed v4.0.7 或更高版本
tr -d r <infile >outfile        # GNU tr 1.22 或更高版本

==在每一行中查找字串“foo”,并将找到的“foo”替换为“bar”==

sed ':a;$!{N;ba};s/2/4/'  #只替换第一次出现的sed 's/foo/bar/'                 # 只替换每一行中的第一个“foo”字串
sed 's/foo/bar/4'                # 只替换每一行中的第四个“foo”字串
sed 's/foo/bar/g'                # 将每一行中的所有“foo”都换成“bar”
sed 's/(.*)foo(.*foo)/1bar2/' # 替换倒数第二个“foo”
sed 's/(.*)foo/1bar/'            # 替换最后一个“foo”# 只在行中出现字串“baz”的情况下将“foo”替换成“bar”
sed '/baz/s/foo/bar/g'# 将“foo”替换成“bar”,并且只在行中未出现字串“baz”的情况下替换
sed '/baz/!s/foo/bar/g'# 不管是“scarlet”“ruby”还是“puce”,一律换成“red”
sed 's/scarlet/red/g;s/ruby/

这篇关于shell sed脚本速查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

centos6一键安装vsftpd脚本

centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 (命令执行:sh xxx.sh add)3.卸载vsftpd (命令执行:sh xxx.sh uninstall) 测试环境:centos6 x64 centos6 x86(测试centos7以