Sed用法集锦
Sed用法集锦(注释、插入、删除)
linux,其实也就是查看和修改配置文件的过程。
刚开始接触linux,其实还是老实用vi来编辑文件,不过同样的过程重复多次,你就要想办法简化
你的过程。sed绝对是一个好的命令或者工具,你不需要用vi打开文件就可以直接编辑。
sed的用法网上很多,我也没有看懂多少。现在就是会对着简单的例子来修改。不过这其实也够了。
我也只需要一些简单的功能。
1:注释掉某一行
这个经常会遇到的,把配置文件里某一行注释掉。让他不起作用。
sed -i -e '121 s/^/#/' /usr/local/apache2/conf/httpd.conf
上面一行命令的意思,就是把121行注释掉。
sed -i -e '121 s/^/#/' -i -e '122 s/^/#/' /usr/local/apache2/conf/httpd.conf
这个就是把121,122行注释掉。
2:把注释#去掉,让这行起作用
sed -i 's/#ServerName www.example.com:80/ ServerName www.example.com:80/g'
/usr/local/apache2/conf/httpd.conf
这个命令就是把这行的#去掉。其实就是一个替换的过程,
3:在某行的位置插入一行
如果只是在一个文档后面追加一行,那很简单。>> 就可以搞定。不过如果是在指定的某一行里插入。
sed -i "8 s/^/alias vi='vim'/" /root/.bashrc
就是在第8行插入 alias vi='vim'
4:如何插入一行,包括特殊字符 /
sed -i "58 s/^/AddType application\/x-httpd-php .php .phtml/" httpd.conf
这样就让apache支持php,简单多了。
下面的用法还没有测试。改天测试
Sed:
1、删除行首空格
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2、行后和行前添加新行
行后:sed 's/pattern/&\n/g' filename
行前:sed 's/pattern/\n&/g' filename
&代表pattern
3、使用变量替换(使用双引号)
sed -e "s/$var1/$var2/g" filename
4、在第一行前插入文本
sed -i '1 i\插入字符串' filename
5、在最后一行插入
sed -i '$ a\插入字符串' filename
6、在匹配行前插入
sed -i '/pattern/ i "插入字符串"' filename
7、在匹配行后插入
sed -i '/pattern/ a "插入字符串"' filename
sed -i '/jsonMem/ a 10.16.67.55 jsonMem_1' /etc/hosts
sed -i '/sessMem_1/ a 10.16.67.36 jsonMem' /etc/hosts
sed -i '/extension=memcache.so/ a extension=m9ext4php.so' php.ini
sed -i s/"extension=m9ext4php.so"/" extension=m9ext4php.so"/ php.ini
sed指令用法
第 1 页 共 3 页 sed指令用法
sed是一个流编辑器,用于对文本文件进行基本的文本转换和操作。它可以通过一系列指令对文本进行替换、删除、插入和格式化等操作,方便快捷地处理文本数据。本篇文章将详细介绍sed指令的用法。
一、基本用法
sed命令的基本语法如下:
sed [选项] 脚本文件 [输入文件]
其中,选项是一些可选的参数,可以用来控制sed命令的行为;脚本文件是包含sed指令的文件;输入文件是需要进行处理的文本文件。
执行sed命令后,它会按照脚本文件中定义的指令对输入文件进行操作,并将结果输出到标准输出。
二、指令分类
sed指令可以分为以下几类:
1. 查找和替换:使用正则表达式查找文本中的匹配项,并进行替换操作。
2. 删除和插入:删除文本中的某些内容,或向文本中插入新的内容。
3. 格式化:对文本进行排版和格式化,如缩进、换行等。
4. 其他操作:如复制、链接、统计行数等。
三、用法示例
1. 查找和替换示例
以下是一个查找和替换的示例脚本: 第 2 页 共 3 页 sed 's/apple/orange/g' input.txt
该指令会在input.txt文件中将所有出现的"apple"替换为"orange"。
2. 删除和插入示例
以下是一个删除空白行的脚本:
sed '/^[^ ]/ { N; s/\n//; }' input.txt
该指令会保留非空白行,并将相邻的空白行合并为一行。
以下是一个向文本中插入新行的脚本:
sed '$a\new line' input.txt
该指令会在input.txt文件的末尾插入一行"new line"。
3. 格式化示例
以下是一个将文本按指定宽度排版的脚本:
sed 's/\(.*\)/&\n/g; s/^\n*//; s/\n/\t/g; s/\t*$//;
s/\t*/& /g; /^$/d' input.txt width=20 && width=80 >
sed基本用法
sed基本⽤法
命令格式解析
1.常见命令选项
-n 屏蔽默认输出
-i 直接修改⽂本内容
-f 使⽤sed脚本
-e 可指定多个处理动作
-r 启⽤扩展正则表达式,若与其他选项⼀起使⽤,应把r放在最前
-{} 可组合多个命令,以分号分割
sed 元字符
^ 匹配⾏开始,如:/^sed/匹配所有以sed开头的⾏。
$ 匹配⾏结束,如:/sed$/匹配所有以sed结尾的⾏。
. 匹配⼀个⾮换⾏符的任意字符,如:/s.d/匹配s后接⼀个任意字符,最后是d。
匹配0个或多个字符,如:/*sed/匹配所有模板是⼀个或多个空格后紧跟sed的⾏。
[] 匹配⼀个指定范围内的字符,如/[ss]ed/匹配sed和Sed。
[^] 匹配⼀个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的⼀个字母开头,紧跟ed的⾏。
(..) 匹配⼦串,保存匹配的字符,如s/(love)able/\1rs,loveable被替换成lovers。
& 保存搜索字符⽤来替换其他字符,如s/love/&/,love这成love。
\< 匹配单词的开始,如:/\
\> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的⾏。
x{m} 重复字符x,m次,如:/0{5}/匹配包含5个0的⾏。
x{m,} 重复字符x,⾄少m次,如:/0{5,}/匹配⾄少有5个0的⾏。
x{m,n} 重复字符x,⾄少m次,不多于n次,如:/0{5,10}/匹配5~10个0的⾏。
sed替换标记:
g表⽰全局替换
\1表⽰前⾯第⼀个左括号所表⽰的内容,\2表⽰前⾯第⼆个左括号中表⽰的内容,以此类推
&表⽰前⾯匹配到的内容
基本的处理动作
p 打印⾏ 4,6p 输出4,5,6⾏
4p,6p 输出4⾏,6⾏
d 删除⾏ 4,6d 删除4,5,6⾏
s 字符串替换s/old/new/ 将每⾏的第⼀个old替换成new
s/old/new/3 将每⾏的第三个old替换成new
使用sed命令进行高级文本截取和拼接的技巧
使用sed命令进行高级文本截取和拼接的技巧
sed命令是一种在Linux系统中经常用于文本处理的强大工具。除了常见的替换和删除功能外,sed还提供了高级的文本截取和拼接功能,可以帮助我们更方便地处理文本文件。本文将介绍几种常用的sed命令技巧,用于实现高级文本截取和拼接。
一、使用sed命令截取文本
1. 截取指定行数的文本
sed -n '3,5p' filename
以上命令将截取文件filename中第3行到第5行的文本,并输出到终端。
2. 截取指定行数以外的文本
sed '3,5d' filename
以上命令将删除文件filename中的第3行到第5行,并输出剩余的文本到终端。
3. 截取指定字符串之间的文本
sed -n '/start/,/end/p' filename
以上命令将截取文件filename中从包含"start"字符串的行开始到包含"end"字符串的行结束之间的文本,并输出到终端。 4. 截取指定正则表达式匹配的文本
sed -n '/pattern/p' filename
以上命令将截取文件filename中所有匹配正则表达式"pattern"的行,并输出到终端。
二、使用sed命令拼接文本
1. 使用追加命令'a'拼接文本
sed '/pattern/a\
追加的文本' filename
以上命令将在文件filename中包含匹配正则表达式"pattern"的行后追加一行文本。
2. 使用插入命令'i'拼接文本
sed '/pattern/i\
插入的文本' filename
以上命令将在文件filename中包含匹配正则表达式"pattern"的行前插入一行文本。
3. 使用替换命令's'拼接文本
sed '/pattern/s/$/ 追加的文本/' filename
以上命令将在文件filename中包含匹配正则表达式"pattern"的行的末尾追加一段文本。 三、使用sed命令同时进行截取和拼接
sed的语法
sed的语法
Sed(Stream Editor)是一种流式编辑器,用于对文本进行处理和转换。它是一个非交互式的命令行工具,可用于在文本中进行替换、删除、插入、查找和转换操作。Sed广泛用于UNIX和Linux操作系统中,是文本处理中不可或缺的工具之一。下面将介绍Sed的基本语法和常见用法。
Sed的基本语法形式是:sed [选项] [脚本] [输入文件]。
选项部分用来指定Sed的行为,例如可以用-i选项来直接修改输入文件,也可以用-n选项来禁止默认的输出。脚本部分用来指定Sed的操作,可以是单个命令或多个命令的组合。输入文件部分用来指定要处理的文件名,如果不指定输入文件,则Sed将默认从标准输入中读取数据。
Sed的脚本由一系列命令组成,这些命令可以用来对文本进行编辑操作。每个命令都由一条地址和一个操作组成。地址用于指定应用命令的行范围,可以是行号、正则表达式或行号范围。操作用于指定对选择的行应用的操作。 以下是Sed常用的命令和操作:
1.替换命令(s):用于替换文本中的指定模式。命令的语法是s/模式/替换/,例如s/foo/bar/表示将文本中的foo替换为bar。
2.删除命令(d):用于删除指定的行。命令的语法是d,例如1d表示删除第一行。
3.打印命令(p):用于打印指定的行。命令的语法是p,例如1p表示打印第一行。
4.插入命令(i):用于在指定行前插入文本。命令的语法是i\文本,例如2i\hello表示在第二行前插入hello。
5.追加命令(a):用于在指定行后追加文本。命令的语法是a\文本,例如2a\world表示在第二行后追加world。
6.替换标志(g):用于在替换命令中替换所有匹配的模式,而不仅仅是第一个匹配。
7.删除标志(全局):用于对指定的命令应用全局替换,即在所有匹配的地方进行替换。 8.文件引用:用于将一个文件的内容插入到指定的行。命令的语法是r文件名,例如r file.txt表示将file.txt文件的内容插入到当前行。
sed命令用法
sed命令行格式为:
sed [-nefri] ‘command’ 输入文本/文件
常用选项:
-n∶取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来
-e∶进行多项编辑,即对输入行应用多条sed命令时使用. 直接在指令列模式上进行 sed 的动作编辑
-f∶指定sed脚本的文件名. 直接将 sed 的动作写在一个档案内, -f filename 则可以执行
filename 内的sed 动作
-r∶sed 的动作支援的是延伸型正则表达式的语法。(预设是基础正则表达式语法)
-i∶直接修改读取的文件内容,而不是由屏幕输出
常用命令:
a ∶ 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c ∶ 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d ∶ 删除,因为是删除,所以 d 后面通常不接任何内容
i ∶ 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p∶ 列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起用
s∶ 取代,可以直接进行替换的工作。通常这个 s 的动作可以搭配正则表达式。例如
1,20s/old/new/g
定址
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。
地址是一个数字,则表示行号;是“$"符号,则表示最后一行。例如:
sed -e用法 -回复
sed -e用法 -回复
使用sed命令进行文本处理
sed是一个强大的流编辑器,常用于在命令行下对文本进行处理和编辑。它可以用于删除、替换、插入、查找等操作,对于批量处理大型文本文件非常方便和高效。
以下是使用sed命令进行文本处理的一些常见用法:
1. 替换字符串:sed 's/old/new/' file.txt
这个命令会将文件file.txt中所有出现的"old"字符串替换为"new"。
2. 替换并写入文件:sed -i 's/old/new/' file.txt
加上-i选项可以直接在原文件上进行替换,并保存修改后的结果。
3. 删除行:sed '2d' file.txt
上述命令会删除文件file.txt的第2行。
4. 删除多个行:sed '2,5d' file.txt
这个命令会删除文件file.txt的第2行到第5行。
5. 插入行:sed '2i\This is a new line.' file.txt 这个命令会在文件file.txt的第2行之前插入一行“This is a new line.”
6. 过滤行:sed '/pattern/d' file.txt
上述命令会删除文件file.txt中包含"pattern"的行。
7. 使用正则表达式:sed 's/[0-9]\+/&/g' file.txt
这个命令会将文件file.txt中的所有数字替换为它本身加上一个"&"符号。
8. 执行多个操作:sed -e 's/old/new/' -e 's/hello/world/' file.txt
上述命令会先替换文件file.txt中的"old"为"new",然后再将"hello"替换为"world"。
9. 仅处理特定行号:sed -n '2,5p' file.txt
这个命令会打印文件file.txt的第2行到第5行。
sed相关参数及基本用法
sed相关参数及基本⽤法
1. sed 参数 :
–n 特殊处理某⼀⾏
–i 修改更改⽂件内容
–s 替换取代
–P 列印
–d 删除
2. sed 替换指定内容
命令 :
sed ‘-i s/新的内容/要替换内容/ ’
3. sed 查看指定内容
命令 :
sed –n ‘/2018-10-31 12:12:12’/, 2018-10-31 12:12:12/p’ file.txt
4. sed合并⽂件上下两⾏为⼀⾏
命令 :
sed –n ‘{N; s/\n/\t/p}’ file.txt
5. sed 在⽂件的指定位置插⼊相关内容
1 > 在指定内容前插⼊相应内容
命令 ;
Sed –i ‘s/指定字符/要插⼊的字符&/’ file.txt 例如 :在file.txt的11前插⼊aaa
# cat file.txt
1122233444
# sed -i 's/11/aaa&' file.txt
# cat file.txt
aaa1122233444
2 > 在指定内容后插⼊相应内容
命令 ;
Sed –i ‘s/指定字符/&要插⼊的字符/’ file.txt
例如 : 在file.txt的11后插⼊aaa
# cat file.txt
1122233444
# sed -i 's/11/&aaa' file.txt # cat file.txt
11aaa22233444
6.sed 处理⾏头⾏尾内容
1> 在每⾏的头添加字符,⽐如“HEAD”
命令 :
Sed –i ‘s/^/ HEAD&/’ /tmp/file.txt
2 >在每⾏的尾部添加字符,⽐如“tail”
命令:
Sed -I ‘s/$/&tail/’ /tmp/file.txt
7. sed 删除所有空格并在指定位置插⼊相关内容
命令:
Sed -i ‘/^$/d;s/111/aaa&/;s/111/&bb’ file.txt
sed命令 -i的用法
sed命令 -i的用法
sed(Stream Editor)是一个在文本流中执行编辑操作的强大工具,它可以自动编辑文本文件中的文本(称为流,数据只读入内存的一部分),其优点是可以将处理结果输出到标准输出,也可以将处理结果保存到文件中,常常被用来进行批量文本处理的工作。在实际应用中经常会使用到sed命令,并且其中的-i参数非常常见,本篇文章将对-sed命令
-i参数的用法进行详细的介绍。
在了解-sed命令 -i参数之前,我们先简单介绍一下sed命令的基本用法。
参数说明:
- -e 在 sed 脚本中加入要执行的命令
- -f 在 sed 脚本中加入要执行的命令
- -n不产生命令输出
示例:
1.将文件中的boy替换为girl
$ sed 's/boy/girl/' file.txt
2.将文件file1.txt中匹配regular expression的行替换为replace line
3.将文件file2.txt中匹配的行和下一行合并为一行
-sed命令 -i参数表示直接修改内容,一般用于在文本文件中进行查找和替换操作。需要注意的是,使用-i参数会直接修改原文件,如果需要备份原文件,可以在-i参数后跟上备份文件后缀名,例如:
-i 参数实际上就是在-sed命令中加入-w参数的快捷方式,使用-i参数会将结果覆盖到输入文件中,而不是输出结果到标准输出。如果你只是想测试运行一下但又不想对原文件进行操作的话,可以将-i参数替换成-n参数,示例如下:
该命令不会改变原文件,只是在标准输出中输出替换结果,并且为了防止正则表达式过于复杂导致替换错误,建议在进行大规模替换操作前进行备份。
3.将匹配为“string”字符串的行加上行尾的“Addition”字符串并备份原文件
总结 本篇文章主要介绍了-sed命令中-i参数的用法,希望可以对读者在文本操作时提供帮助,同时也希望大家能够根据实际需求合理运用-sed 命令和-i参数进行批量文本处理。如果使用不当,可能会对原文件的内容造成不可逆的影响。
sed -i 正则用法
sed-i正则用法
sed是一个常用的文本处理工具,它可以对文本文件进行插入、替换、删除等操作。其中,-i选项表示直接修改原文件,正则表达式则是sed用于匹配和替换文本的重要工具。
一、基本正则表达式
在sed中,正则表达式用于匹配文本模式。最基本的正则表达式由字符类和元字符组成,如[abc]表示一个字符集合,*表示零个或多个连续的字符,+表示一个或多个连续的字符等。
二、sed命令的基本用法
使用sed命令的基本格式为:sed[选项]文件名。其中,选项包括-i(直接修改原文件)、-n(禁止自动输出)、-e(执行指定脚本)等。文件名是要处理的文本文件。
三、sed中的替换操作
使用sed进行替换操作时,可以使用s/查找内容/替换内容/g的格式。其中,“查找内容”可以使用正则表达式进行匹配,“替换内容”可以是字符串或变量。g选项表示替换时全局替换,不区分单词边界。
四、使用sed进行替换操作时需要注意的问题
在使用sed进行替换操作时,需要注意一些问题,如正则表达式的匹配范围、替换操作的顺序等。如果正则表达式匹配的范围过大,可能会导致不必要的替换操作。同时,替换操作的顺序也会影响最终的结果,需要仔细考虑。
五、sed中的插入和删除操作
除了替换操作,sed还提供了插入和删除操作。插入操作可以使用i选项和插入内容进行组合使用,如“sedi'content'file.txt”将在文件末尾插入content。删除操作可以使用d选项和行号进行组合使用,如“sed-n'2d'file.txt”将删除文件中的第二行。
六、综合案例
下面是一个综合案例,展示如何使用sed进行批量替换操作: 假设有一个文本文件,其中包含一些重复的行,我们想要将这些重复的行合并成一个。可以使用以下命令:
sed-i'/^.{2}$/{h;g;s/\n//;s//*&/}'file.txt
这个命令使用了正则表达式来匹配每行前两个字符相同的行,并将它们合并成一个。具体步骤如下:
sed命令用法 2
sed命令用法
sed,即Stream EDitor的缩写,是一种流编辑器,它能够使用户对文本流进行处理,它是Linux系统中最常被使用的数据处理工具,能够快速且高效完成文本处理工作。
1、sed命令简介
sed是一种流编辑器,由Unix系统提供,它能够在脚本文件中调用,以完成一些文本处理任务。它支持一些正则表达式,也可以使用字符串或数字作为参数,用于查找和替换字符串。它可以在文本文件、标准输入流、一个或多个文件中进行编辑和处理,它的好处在于速度快,可以使用通配符规范文本文件,使用一次可以改变多行文本,并且可以控制环境。
2、sed命令用法
(1)sed命令基本形式
sed [选项] 'command' filename
(2)sed命令参数
-i.bak:备份当前被编辑文件,以"filename.bak"格式作为存档文件;
-n:使用安静模式,即不自动打印输出;
-e:后接 sed 命令行,用于执行多条命令; -f:执行 sed 编辑脚本,使得程序分离命令和数据;
-r:使用扩展的正则表达式;
-u:表示单字节字符集。
(3)sed 命令常见功能
a:在文件末尾或某一行后面添加文本;
c:用新文本替换一行或多行;
d:删除一行或多行;
i:在文件开头或某一行前面添加文本;
p:打印行;
s:使用正则表达式匹配已存在的文本内容,并替换成指定文本;
r:从外部文件读入文本,替换当前行;
n:读取下一行文本;
q:退出 sed 命令。
3、使用实例
(1)打印文件的第一、三、五行
sed -n '1p;3p;5p' filename.txt
(2)从每一行的开头添加字符串:
sed 's/^/mystring/' filename.txt
(3)替换文件中的字符串
sed 's/string1/string2/g' filename.txt
