sed 主要用来修改文档数据
echo "删除第二行"
sed '2d' student.txt
echo "删除第二行到第四行"
sed '2,4d' student.txt
echo "删除第二行后追加字符串 a为append"
sed '2a geek v5' student.txt
echo "删除第二行前插入字符串 i 为insert"
sed '2i geek v5' student.txt
echo "替换整行"
sed '2c geek v5' student.txt
echo "替换行中的字符串 显示到屏幕 但不会改变文件的内容"
sed '3s/28/70/g' student.txt
echo "替换行中的字符串 不显示到屏幕 且会改变文件的内容 -i会改变文件内容"
sed -i '3s/28/70/g' student.txt
echo "多个动作同时执行 不加行号 搜索所有文件内容 70 置空 xin替换成hui"
sed -e 's/70//g;s/xin/hui/g' student.txt
字符串替换
sed 's/旧字串/新字串/g' 文件名
sed '3s/60/99/g' student.txt # 在第三行中,把 60 换成 99 sed -i '3s/60/99/g' student.txt # sed 操作的数据直接写入文件
sed -e 's/fengj//g;s/cang//g'student.txt 同时把“fengj”和“cang“替换为空
sed '2c furong bu ji ge' student.txt # 数据替换
sed '2a piaoliang jiushi renxing' student.txt # 在第二行后追加 hello
sed '2i meinv' student.txt # 在第二行前插入两行数据
sed '2,4d' student.txt # 删除第二行到第四行的数据,但不修改文件本身
bgbtgrb
ccxcxcc
sed 的 删除动作 'd' 其中d前面的数字表示范围 比如'2,10' 表示第二行到第十行.
动作 -a 追加 -c 行替换 -i 插入 -d 删除 -p 打印 -s 字串替换
sed 's/旧字串/新字串/g' 文件名
1、
临时删除第二行的内容
sed '2d' test.txt
临时删除第二行到第四行的内容
sed '2,4d' test.txt
2、
-a(追加)在指定行的后面追加
sed '2a fhvnwiv' test.txt
-i(插入)在指定行的前面插入
sed '2i adfhfiqe' test.txt
3、
-c(行替换)
sed '2c wenfvjwiv' test.txt
-s(字符串替换)
sed 's/旧字符串/新字符串/g' 文件名
g代表是否把一整行的旧字符串改为新字符串,加了代表全改,不加就改第一个
sed '2s/13/14/g' test.txt
同时修改字符串,可以执行多条动作
sed -e '2s/13/14/g;2s/14/15/g' test.txt
举例:
sed '2,4d' student.txt #删除第二行到第四行,删除的只是显示的值并不改变文件内容
sed '2a piaoliang jiu shi ren xing' student.txt #在第二行追加字符
sed '2i piaoliang jiu shi ren xing' student.txt #在第二行插入字符
sed '4c cang bu ji ge' student.txt #替换第四行
sed '4s/70/100/g' student.txt #第四行70替换成100,/g代表所有都替换
sed -i '4s/70/100/g' student.txt #文件内容70被替换成100
sed -e 's/furong//g;s/fengj//g' student.txt #应用多个动作,用;隔开,/g代表所有都替换
sed '4c cang bujige' student.txt //行替换
sed '2,4s/F/M/g' student.txt //指定范围内的行进行字符串替换(第2行和第4行的'F'前部替换为'M')
sed -e 's/furong/xx/g;s/fengji/yy/g' student.txt //-e选项,进行多条sed动作操作,动作之间用";"分隔(将文件student.txt的所有字符串'furong'替换为'xx';将文件student.txt的所有字符串'fengji'替换为'yy';))
sed '2d' test.txt #删除第二行
sed '2,4d' test.txt #删除第二到第四行
sed '2a input content' test.txt #在第二行后追加input content
sed '2i input content' test.txt #在第二行前插入input content
sed '2c input content' test.txt #将第二行替换为input content(替换一整行)
各个动作都可以加上行号范围
/g是指在指定范围内有多个旧字符串,就替换掉所有的,如果没有/g,就只替换第一个旧字符串
多个动作之间可用“;”隔开
sed命令作用:对文档进行文本操作。
sed -i '3s/70/100/g' student.txt #把第三行的所有“70”替换为“100”
#-i 更新原始内容,sed命令默认不更新数据源。
#/g 没有“/g”只替换第一个旧串。
sed基本格式,用法
sed '2a append context' test.txt #a 追加
#在第二行前,追加“append context”;
sed '2a append context' test.txt
#不加行号,每行追加;
sed '2,3a append context' test.txt
#指定行追加
sed '4c cang bujige' student.txt //行替换
sed '2,4s/F/M/g' student.txt //指定范围内的行进行字符串替换
sed -3 's/furong/xx/g;s/fengji/yy/g' student.txt //-e选项,进行多条sed动作操作,动作之间用";"分隔
sed '2d' test.txt #删除第二行
sed '2,4d' test.txt #删除第二到第四行
sed '2a input content' test.txt #在第二行后追加input content
sed '2i input content' test.txt #在第二行前插入input content
sed '2c input content' test.txt #将第二行替换为input content(替换一整行)
各个动作都可以加上行号范围
/g是指在指定范围内有多个旧字符串,就替换掉所有的,如果没有/g,就只替换第一个旧字符串
多个动作之间可用“;”隔开
sed '4c cang bujige' student.txt //行替换
sed '2,4s/F/M/g' student.txt //指定范围内的行进行字符串替换
sed -3 's/furong/xx/g;s/fengji/yy/g' student.txt //-e选项,进行多条sed动作操作,动作之间用";"分隔
sed '2d' test.txt #删除第二行
sed '2,4d' test.txt #删除第二到第四行
sed '2a input content' test.txt #在第二行后追加input content
sed '2i input content' test.txt #在第二行前插入input content
sed '2c input content' test.txt #将第二行替换为input content(替换一整行)
各个动作都可以加上行号范围
/g是指在指定范围内有多个旧字符串,就替换掉所有的,如果没有/g,就只替换第一个旧字符串
多个动作之间可用“;”隔开
sed 命令动作
字符串替换
#删除第2-4行
#动作: -c:行替换 -s:字串替换
sed 命令的动作 6个动作~
sed 操作文件内容
sed字符串替换。
行替换,替换第二行