【Linux shell】sed实践(1)

1、替换文件中的指定字符

#sed 's/VAR.*/ string,/g' filename

#sed -in 's/VAR.*/ string,/g' filename

-i:直接修改原文件

-n:取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

.:代表任意一个字符

*:代表多个

.*:代表任意多个字符

2、文件头部插入内容

#sed -in '1i\123' test.file

或者

#sed -in '1i 123' test.file

i\:在当前行的上一行添加

3、在文件结尾追加内容

#sed -in '$a\123' test.file

或者

#sed -in '$a 123' test.file

$:结尾

a\:在当前行的下一行添加

4、删除某一行

#sed -i '2d' test.file

删除第二行

#sed -i '$d' test.file

删除最后一行

#sed -i '2,$d' test.file

删除第二行到最后一行

5、替换文件中指定字符(屏显)

#sed -e 's/k/x/' test.file

替换每行的第一个k字母为x字母

#sed -e 's/k/x/g' test.file

全局替换,替换文件所有的k字母为x字母

s:取代,可以直接进行取代,通常这个 s 的动作可以搭配正规表示法

g:表示行内全面替换

-e∶直接在指令列模式上进行 sed 的动作编辑,多点编辑

6、替换:s命令

#sed  '1s/a/b/g' test.file

将第一行的a字母替换为b字母

#sed  '1,3s/a/b/g' test.file

将第一行到第三行所有的a字母替换为b字母

7、sed命令中使用变量替换或添加

用双引号和单引号将变量引起来

1)#sed 's/^/'"$NAME"'/g' test.file

在文件每行开头添加变量NAME

2)在文件开头增添变量NAME

3)在文件结尾增加变量NAME

时间: 2024-09-20 07:42:21

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

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来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译