Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810uname -r看到内核版本是3.10.0-957.el7.x86_64sed --version可以看到sed版本是4.2.2
在这里插入图片描述

echo 'a : 1 : good : g' >> sed_daicpnrwq.txt
echo 'b : 2 : well : w' >> sed_daicpnrwq.txt
echo 'c : 3 : food : f' >> sed_daicpnrwq.txt
echo 'd : 4 : hood : h' >> sed_daicpnrwq.txt
echo 'e : 5 : bell : b' >> sed_daicpnrwq.txt
echo 'o : 6 : toll : t' >> sed_daicpnrwq.txt
echo '1 : a : good : g' >> sed_daicpnrwq.txt
echo '2 : b : well : s' >> sed_daicpnrwq.txt
echo '3 : c : food : f' >> sed_daicpnrwq.txt

把下边的内容:

a : 1 : good : g
b : 2 : well : w
c : 3 : food : f
d : 4 : hood : h
e : 5 : bell : b
o : 6 : toll : t
1 : a : good : g
2 : b : well : s
3 : c : food : f

写入到sed_daicpnrwq.txt里边。
在这里插入图片描述

删除

sed '/寻址/d' filename就是把匹配上的内容所在那行在模式空间删除,然后改变控制流。
sed '/^1/d' sed_daicpnrwq.txt把以1开头的一行删除了,但是没有把原文件里边的内容删除。
在这里插入图片描述

sed '/^1/d;s/a/#/g' sed_daicpnrwq.txt没有把删除的那一行中的a替换成#,说明改变了控制流。
在这里插入图片描述

sed '/^1/d;=' sed_daicpnrwq.txt把以1开头的一行删除了之后把行号输出在每行上边,没有把原文件里边的内容删除。
在这里插入图片描述
一般先进行其他操作,然后再进行删除操作。

追加

sed '/寻址/a\插入字符' filename在匹配上的内容下边一行追加,sed '/oo/a\%%%%%' sed_daicpnrwq.txt匹配上有oo的行,然后在匹配上的每行下边插入%%%%%
在这里插入图片描述

插入

sed '/寻址/i\插入字符' filename在匹配上的内容上边插入,sed '/ll/i\######' sed_daicpnrwq.txt匹配上有ll的行,然后在匹配上的每行上边插入######
在这里插入图片描述

更改

sed '/寻址/c\changestring' filename把匹配上的每行改写成changestring
sed '/well/c\testChange' sed_daicpnrwq.txt把匹配上的每行都改写成testChange
在这里插入图片描述

读写文件

echo "4 : d : got : g" >> sed_rfile.txt
echo "5 : e : foot : f" >> sed_rfile.txt

把下边的内容:

4 : d : got : g
5 : e : foot : f

写入到sed_rfile.txt
在这里插入图片描述

sed '/寻址/r file1' file2file2匹配的每行输出之后,把file2中的内容输出到匹配上的行之后。
sed '/good/r sed_rfile.txt' sed_daicpnrwq.txtsed_rfile.txt输出到sed_daicpnrwq.txt匹配到good的行之后。
在这里插入图片描述

下一行

sed '/good/n;/well/d' sed_daicpnrwq.txt可以转向 good匹配上的下一行删除well匹配上的一行,sed '/good/n;/good/d' sed_daicpnrwq.txt没有删除good匹配上的行,sed '/good/n;/food/d' sed_daicpnrwq.txt可以转向匹配good的下一边删除well匹配上的一行。
在这里插入图片描述

打印行号

sed '=' sed_daicpnrwq.txt可以打印行号。
在这里插入图片描述

打印

sed 'p' sed_daicpnrwq.txt把所有行都输出一遍。
在这里插入图片描述

sed '/^a/p' sed_daicpnrwq.txt把匹配上的行a : 1 : good : g输出。
在这里插入图片描述

seq

seq生成数字序列,-s是指定数字序列之间的分隔符。
seq 1 15能够生成115的数字序列。
在这里插入图片描述
seq -s "+" 1 15能够生成1+2+3+4+5+6+7+8+9+10+11+12+13+14+15的数字序列。
在这里插入图片描述

seq 5 -1 1能够生成从51数字序列,5是起始数字,-1是步长,即每次减一,1是结束数字。
在这里插入图片描述
seq -s "-" 5 -1 1能够生成5-4-3-2-1的数字序列。
在这里插入图片描述

退出

seq 1 10000 >> seq.txt生成110000的数字序列,然后写入到seq.txt,之后使用tail -n 10 seq.txt看一下最后10行的内容。
在这里插入图片描述

sed '10q' sed_daicpnrwq.txt只处理到第10行。
在这里插入图片描述

sed中,qp效率高。

此文章为8月Day 10学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》

猜你喜欢

转载自blog.csdn.net/qq_42108074/article/details/132218774