【Linux shell】sed实践(3)

1、特殊字符&的应用

#sed 's/sd/d&/g' test.file

将文件中的sd字符替换成dsd字符

#sed 's/wcnm/&b/g' test.file

将文件中的wcnm字符替换成wcnmb字符

& : 代表其前 pattern 字串,直被替换的字串

2、i和a匹配字符指定行上下插入新的一行

#sed '/lg/a\test' test.file    或者    #sed '/lg/a test' test.file

匹配含有lg的行并在该行的下方插入新的一行test

#sed '/lg/i\test' test.file    或者    #sed '/lg/i test' test.file

匹配含有lg的行并在该行的上方插入新的一行test

3、匹配一串字符串保留某些需要的字符并替换其他字符

#sed -n 's/w\(cnm\)/\1d/p' test.file

将cnm标记为1,并将wcnm替换为cnmd

#sed -n 's/\(wcn\)m/\1d/p' test.file

将cnm标记为1,并将wcnm替换为wcnd

4、同时替换多个字符

#sed '2,4s/a/b/;s/c/b/g' test.file

替换2-4行第一个a字母为b字母,并替换所有行的第一个c字母为b字母

#sed '2,4s/a/b/g;s/c/b/g' test.file

替换2-4行所有a字母为b字母,并替换所有行的c字母为b字母

5、替换符合条件的字符进行替换(或)

#sed 's/a\|c/o/' test.file

匹配含有字母a或c的行并替换第一个字母(a或c谁在前替换谁,后面不再替换)

#sed 's/a\|c/o/g' test.file

匹配含有字母a或c的行并将a和b全部替换为o字母

时间: 2024-11-02 09:33:25

【Linux shell】sed实践(3)的相关文章

linux shell sed awk-linux shell替换(通过变量修改文档值)

问题描述 linux shell替换(通过变量修改文档值) 现有变量VAR= 1, 2,3,4为一个数组,去依次修改文档 例如: 1 2 3 4 5 6 7 8 9 中第二行第三列的数值,得到4个文档分别为: 1 2 3 1 2 3 1 2 3 1 2 3 4 5 1 4 5 2 4 5 3 4 5 4 7 8 9 7 8 9 7 8 9 7 8 9 该怎么用脚本实现?请大神指教 解决方案 这种用python脚本来做更容易点.

linux shell编程 sed指令问题

问题描述 linux shell编程 sed指令问题 在同一个目录下有两个文件oracle-ds.xml,postgresql-ds.xml 我分别执行指令 sed -n '/^ */p' oracle-ds.xml sed -n '/^ */p' postgresql-ds.xml 为什么oracle-ds.xml 的可以匹配到,而postgresql-ds.xml无法匹配到,两个文件都有 查了半天没弄懂,求指点 我粘下文件内容: oracle-ds.xml: Oracle9i 2330201

Linux shell multifile content replace with sed

#!/bin/bash # Linux shell multifile content replace with sed # 声明: # 本源代码主要是利用两份(中.英文)具有相同键值对的json数据,对html内的中文进行 # 自动化文本替换的代码. # # 2015-11-20 晴 深圳 南山平山村 曾剑锋 # 得到中文部分 sed -n "/\"/p" SimpChinese.txt | grep -Po -e "\"\s?:\s?.*"

Linux中sed如何处理文本

sed处理文本的方法 sed在处理文本时,会先读取第一个输入行,将编辑命令应用于输入行,然后读取下一个输入行,并应用编辑命令.sed总是处理最新版本的行,因此sed中有多个编辑命令时,编辑命令的顺序对结果会有影响,下一个编辑命令会发生了变化的行而不是原始行,如示例: [root@fanyue sed]# cat test This is a pig. This is a cow. [root@fanyue sed]# sed 's/pig/cow/; s/cow/horse/' test Thi

Linux shell脚本基础学习详细介绍(完整版)

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可

Linux shell用法和技巧(转)

使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并放在我的Dropbox里,现在,向大家分享这个文件.这个文件我会不断的更新.需要注意一点的是,有些用法需要在你的Linux系统里安装额外的软件. UPDATE: November 25, 2013 检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 &&

一组Linux Shell Scripting小练习

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1718284 # Linux shell将字符串分割成数组 1 2 result=$(facter | awk '/ipaddress/ && !/ipaddress_lo/ {print $1 " " $3}') array=($result) # 判断一个变量是否存在(不是判断是否为空)

linux shell 管道命令(pipe)使用及与shell重定向区别_linux shell

看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: comma

linux shell命令常用技巧

Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty.其中/dev/null将会丢掉所有写入它的数据,换句换说,当程序将数据写入到此文件时,会认为它已经成功完成写入数据的操作,但实际上什么事都没有做.如果你需要的是命令的退出状态,而非它的输出,此功能会非常有用,见如下Shell代码:  代码如下 复制代码     /> vi test_dev_null.sh         #!/bin/bash     if grep hello TestFile

Linux shell脚本基础学习详细介绍(完整版)第1/2页_linux shell

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译