sed替换字符串

使用sed -i对文本字符串进行增删改查

别等时光非礼了梦想. 提交于 2020-04-07 13:27:38
sed是一个很好的文件处理工具,本身是一个管道命令,主要以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。 1. sed命令行格式 sed [选项] [命令] 1 1.1 选项 -n,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。 -e,直接在命令列模式上进行sed的动作编辑。 -f,直接将sed的动作写在一个文件内。-f filename 则可以运行filename内的sed命令。 -r,sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i,直接修改读取的文件内容,而不是输出到终端。 1.2 指定行数 [n1[,n2]]function n1, n2,不一定存在,一般代表“选择进行动作的行数”,如果我的动作需要在10到20行之间进行,则有’10,20命令’ 1.3 常用命令 a,新增,a的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行) c,取代,c的后面可以接字符串,这些字符串可以取代n1,n2 之间的行 d,删除,因为是删除,所以d后面通常不接任何东西 i,插入,i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行) p,输出,即将某个选择的文件输出

sed 命令详解

ぃ、小莉子 提交于 2020-04-03 22:14:55
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 选项 -e<script>或--expression=<script>:以选项中的指定的script来处理输入的文本文件; -f<script文件>或--file=<script文件>:以选项中指定的script文件来处理输入的文本文件; -h或--help:显示帮助; -n或--quiet或——silent:仅显示script处理后的结果; -V或--version:显示版本信息。 参数 文件:指定待处理的文本文件列表。 sed命令 a\ 在当前行下面插入文本。 i\ 在当前行上面插入文本。 c\ 把选定的行改为新的文本。 d 删除,删除选择的行。 D 删除模板块的第一行。 s

公司更名

北城余情 提交于 2020-03-19 13:41:09
附:linux几种常见的文件内容查找和替换命令 1、vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 pattern是需要匹配的字符串,例如: /name<Enter> #查找name /name<Enter> #查找name单词(注意前后的空格) 除此之外,pattern还可以使用一些特殊字符,包括(/、^、$、*、.),其中前三个这两个是vi与vim通用的,“/”为转义字符。 /^name<Enter> #查找以name开始的行 /name$<Enter> #查找以name结束的行 //^name<Enter> #查找^name字符串 1.2 vi下的替换 :s/name/title/ #替换当前行第一个 name 为 title :s/name/title/g #替换当前行所有 name 为 title :n,$s/name/title/ #替换第 n 行开始到最后一行中每一行的第一个 name 为 title :n,$s/name/title/g #替换第 n 行开始到最后一行中每一行所有 name 为 title #(n 为数字,若 n 为 .

linux sed 批量替换字符串

耗尽温柔 提交于 2020-03-15 09:00:20
#################################################### 获取文件内容处理输出 ############################################################## #解析入库配置,获取表名: echo -e '[table]\ntablename=entry_listquery_fatdt0|flatcookie_fatdt0|path_fatdt0|path_stream_fatdt0|refer_listquery_fatdt0' > ./testfile sed -n 's/^tablename=//p' ./testfile | sed -e 's/|/\n/g' -e 's/\r//g' | sort | uniq > ./test_tablename #(-n)选项和p标志一起使用表示只打印那些发生替换的行 #(-e)选项允许在同一行里执行多条命令,上面是将'|'替换为换行,然后将\r去除 #校验入库配置表名和文件名数量是否一致: tableCount=`wc -l ./test_tablename` fileCount=`ll jobs/EnLog/DFSLoader/conf/loaddb | wc -l ` fileCount=`echo $fileCount-1 | bc`

linux sed 批量替换字符串

孤街浪徒 提交于 2020-03-15 08:59:48
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d'

linux sed 批量替换字符串

为君一笑 提交于 2020-03-15 08:59:26
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d' example-----删除example文件的最后一行。 $ sed '/test/'d

linux sed 批量替换字符串

时光总嘲笑我的痴心妄想 提交于 2020-03-15 08:59:15
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d'

正则表达式与sed工具

╄→尐↘猪︶ㄣ 提交于 2020-03-01 05:04:07
1、正则表达式 通俗来讲,正则表达式是一种字符串的匹配方式,比如使用星号“ * ”来匹配任意的字符等。正则表达式实际上是一个匹配模板,当 bash 执行这个正则表达式时,就会将所有的输入数据与匹配模板匹配,匹配不成功的数据将会被过滤掉。 表 1. 常用的元字符 字符 含义 举例 . 匹配除换行符以外的任意字符 \bhi\b.*\bLucy\b \w 匹配字母或数字或下划线或汉字 \bhe\w \s 匹配任意的空白符 ( 包括空格制表符换页符 ) \b 匹配单词的开始或结束 \bhi\b ^ 匹配字符串的开始 ^g.*d$ $ 匹配字符串的结束 grep ‘d$’ test.ini 表 2. 常用的限定符 字符 含义 举例 * 重复零次或更多次 grep ‘o*’tet.ini + 重复一次或更多次 [0-9]+ 匹配 1 个或更多的数字 ? 重复零次或一次 {n} 重复 n 次 ^9{2}$ {n,} 重复 n 次或更多次 {n,m} 重复 n 到 m 次 表 3. 常用的反义代码 / 语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了 x 以外的任意字符 [^aeiou] 匹配除了 aeiou 这几个字母以外的任意字符 表 4. 扩展正则表达式 字符 含义 举例 { n,m }

linux实战(一)----日志的截取-----文本过滤器grep、文本流式编辑器sed、报表生成器awk的运用

不羁的心 提交于 2020-02-28 21:47:55
linux实战(一)----日志的截取-----文本过滤器grep、文本流式编辑器sed、报表生成器awk的运用 2015年12月25日 16:28:50 张小凡vip 阅读数 5404更多 所属专栏: linux基础与shell编程 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q383965374/article/details/50394765 我们前面已经学习过 linux的性能查询(top),以及网络端口查询(netstat)命令等等。 怎么让我们查询到的信息按 我们需要的格式 显示生成。 就是我们本章 需要 学习练习的。 主要是grep,sed,awk3个命令的运用。 grep主要负责搜索 sed主要负责处理行 awk主要复杂处理列 我们在下一章的内容再来学习实例,如果用这几个命令来进行性能监控等。 grep 作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。 grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 格式 grep [options] [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l

Linux学习之sed命令详解

旧城冷巷雨未停 提交于 2020-02-28 21:17:13
概述 sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。 使用语法 sed命令的使用规则是这样的: 1 sed [option] 'command' input_file 其中option是可选的,常用的option有如下几种: -n 使用安静(silent)模式(想不通为什么不是-s)。在一般sed的用法中,所有来自stdin的内容一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来; -e 直接在指令列模式上进行 sed 的动作编辑; -f 直接将 sed 的动作写在一个文件内, -f filename 则可以执行filename内的sed命令; -r 让sed命令支持扩展的正则表达式(默认是基础正则表达式); -i 直接修改读取的文件内容,而不是由屏幕输出。 常用的命令有以下几种: a \: append即追加字符串, a \的后面跟上字符串s(多行字符串可以用\n分隔),则会在当前选择的行的后面都加上字符串s; c \: 取代/替换字符串,c