sed基本使用用法

sed:Stream Editor

行编程器(全屏编辑器:vi)

模式空间

默认不编辑原文件,仅对模式空间的数据做处理,处理结束后,将模式空间打印到屏幕;

sed [optians] ‘AddressCommand‘file...

-n 静默模式,不显示模式空间中的内容。

-i 直接修改原文件

-e SCRIPT -e SCRIPT:可以同时执行多个脚本

-f /path/SED_SCRIPT:

sed -f /path/to/scripts file

-r 表示使用扩展正则表达式

Address:

1、startLine,EndLine

1,100 从 1到100行

$:最后一行

$-1:倒数第二行

2、/RegExp/ 正则表达式

/^root/

3、/pattern1/,/pattern2/:从模式1匹配的行开始到模式2匹配到的行结束

4、LineNumber:指定的行

5、StartLine, +N

从StartLine开始,向后N行

Command:

d:删除符合条件的行;

p:显示符合条件的行;

a: \string: 在指定的行后面追加新行,内容为string

i \string: 在指定的行前面添加新行,内容为string

r FilePath:将指定的文件的内容添加至符合条件的行处

w filepath:将地址指定范围内的内容另存至指定的文件中;

s/pattern/string/:查找并替换,默认只替换每行中第一次被模式匹配到的串

加修饰符:

g:全局替换s/pattern/string/g

i:查找时忽略大小写

\(\),\1,\2

&:引用模式匹配整个串

s###:同s///,分隔符可以自定义,或者使用@,[email protected]@@格式

sed ‘/oot/d‘ /etc/fstab : 删除oot匹配的行,模式下需要//将模式引起来

sed ‘1,+2d‘ /etc/fstab : 删除第1行和向二2行 ‘1d‘只删除第一行

sed ‘/^\//d‘ 删除/开头的行

sed -n ‘/^\//p‘ 只显示/开始的行

sed ‘/\//a \Hello‘ 以/开始的行在其后追加指定内容为hello的行

sed ‘/^\//a \#hello\n\#hello2‘:追加两行,\n为换行符

sed ‘2r /etc/issue‘ /etc/fstab: 将issue的文件插入fstab的第2行后面

sed ‘1,2r /etc/issue‘ /etc/fstab

sed ‘/oot/w /tmp/oot.txt‘ /etc/fstab 将匹配oot的行保存至oot.txt文件中

sed -n ‘/oot/w /tmp/oot.txt‘ /etc/fstab 关闭显示模式,直接将文件输出至oot文件中

sed  ‘s/^\//#/‘ 将文件中的/替换为#

sed ‘s/l..e/&r/g‘ sed.txt &代表引用前面字符串,查找匹配的串,加上字母r

sed ‘s/\(l..e\)/\1r/g‘ 同上,使用后向引用方式

sed ‘s/l\(..e\)/L\1‘ 将文件中l..e的匹配字符,替换成L开关的字符

history | sed  ‘s/^[[:space:]]*//g‘将行首是空格的删除,*代表不管有多个字符,都

sed ‘s/\(id:\)[0-9]\(:initdefault:\)/\15\2/g‘(将id:3:initdefault:中的数字5变为3)

字符串测试:

比较两个字符串是否一致,使用

==,用法:

[ "$A" == "$B"] [ $A = $B ]

!=: 测试是否不等,不等为真,等为假

>

<

-n string:测试指定字符串是否为空,空则真,不空则假

-s string:测试指定字符串是否不空,不空为真,空则为假

例:#!/bin/bash

if [ `id -n -u $1` == `id -n -g $1` ];then

echo  ‘same‘

else

echo  ‘err‘

fi

#!/bin/bash
if [ $1 = ‘q‘ ];then
        echo "Quitting..."
        exit 0
elif [ $1 = "Q" ];then
        echo "Quitting..."
        exit 2
elif [ $1 = "quit" ];then
        echo "Quitting..."
        exit 3
elif [ $1 = "QUIT" ];then
        echo "Quitting..."
        exit 4
else
        echo $1
fi
echo "scale=2;111/22" | bc
bc <<< "scale=2;111/22"

scale=2保留2位精度

时间: 2024-10-08 09:19:47

sed基本使用用法的相关文章

sed命令的用法

sed命令的用法 -n:选项不打印文件的所有行 [[email protected] ~]# sed '1'p 1                  //不带-n选项,sed会把所匹配的行打印出来,  root:x:0:0:root:/root:/bin/bash             //所要求的行  root:x:0:0:root:/root:/bin/bash              // 并且打印整个文本文件  bin:x:1:1:bin:/bin:/sbin/nologin syn

sed的模式匹配用法探讨

[[email protected] Desktop]# cat sunsky a b c d e f [[email protected] Desktop]# cat sunsky|sed '1,2d'|sed '1,2d' e f [[email protected] Desktop]# cat sunsky|sed -e '1,2d' -e '1,2d' d e f 问题: sed中-e的意思是直接在指令列模式上进行sed的动作编辑按照,那么按照-e的含义,上下两组命令的执行结果应该相同,

sed的基本用法

一.sed基本简介     sed是每次读取文件一行内容到一个缓冲区中(模式空间)进行处理,这个处理是指依次调用script中的命令对模式空间中的内容处理.注意是对模式空间的内容进行处理而非原文件,如需对原文件,则需使用选项. 二.用法 sed基本用法及选项: sed的基本用法:         sed- stream editor for filtering and transforming text         sed [OPTION]...{script-only-if-no-othe

sed命令基础用法

    sed(Stream EDitor)简介 sed是一个流编辑器编辑器,本身是一个管道命令,主要以行为单位处理文本文件,可以将数据进行替换.删除.新增.选取等特定工作:sed并不会处理文本文件本身,而是每当处理一个文件时,按顺序逐行读取到模式空间(内存)中,而后在模式空间中完成编辑,把编辑的结果输出到屏幕上,接着处理下一行,反复操作,直到文件结尾. 模式空间:将读取的内容放在内存中的一块区域编辑,这些内存空间就称为模式空间 格式: sed [options]    'Address Com

sed的标签用法

今天更新区组列表文件,其中F=16的状态是隐藏的状态,玩家是看不到的,其他F=0,添加维护中是需要将S=0变为S=10,F=0,而同步后登录游戏发现区组列表中隐藏的测试区组也出现了并且是维护的状态! 查看脚本,发现用sed将所有的F全部=0了,没有考虑隐藏F=16的情况. <Server N="测试" A="xx.xx.xx.xx" P="12345" S="0" F="16" /> sed -

sed和awk用法

正则表达式的语法: .一点代表一个字符 . 代表任意的字符. 例1:样式 .T. ,代表3 个字符,中间是T,左右两边是任意的一个字符. 例2:... 代表字符长度是3 的字符串.若想比对 . 这个字符本身,需加上转义字符(\),写成\.. 例如:样式data\....代表data.后接3 个字符,如data.txt.data.cfg.data.123 等,都符合这个样 式,但data1234 就不符合了,因为4 个点最左边的那个点,已经用\转义其特殊意义,还原为. 这个字符本身,因此,\...

正则表达式和sed命令的用法

一.            正则表达式:   正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gre

Linux三剑客之sed的基本用法介绍

[介绍] sed是一款强大的非交互式的文本编辑器,可以对文件文本进行增删改查的相关操作,本文主要是讲解以下sed的基本用法. [常用选项] -e 下一个参数为一个sed指令,一般只会用于同一行有多个sed的时候 -f 后面跟保存了sed指令的文件 -i 直接对内容进行修改,不加i时只是预览,并不做实际改动 -n 取消默认输出,只输出处理过的行. [编辑命令] a 追加·向匹配行后面插入内容 c 更改·更改匹配行的内容 i 插入·向匹配行前插入内容 d 删除·删除匹配的内容 s 替换·替换匹配到的

sed及grep用法详解

在linux系统有被称为文本处理三剑客grep,sed,awk. 今天与大家分享的就是gerp和sed处理工具,至于awk,我将会在晚些的时间与大家分享,在分享grep和sed之前我先要和大家说说正则表达,正则表达是什么呢,正则表达式就像是三剑客手里的剑,没有剑哪还能称的上什么剑客,所以我们要先了解以下正则表达式的简单用法. 什么是正则表达式: "正则表达式是描述一组字符窜特征的模式,用来匹配特定的字符串."--Ken Thompson 基本正则表达式的元字符有以下这些: . :匹配任

sed个人习惯用法总结

我这个是根据个人习惯做的笔记,一般常用的我就不记了,记一些爱忘记的!!! sed -[nerif] '行号,行号 action/str/str/action' file (/,@,#都是前面所说的地址定界符) sed '[email protected]@@' file sed 's///' file sed 's###' file 这三种方式都行 sed命令的语法格式: sed的命令格式: sed [option] 'sed command'filename sed的脚本格式:sed [opt