为什么要用sed?
sed在写脚本的是有分析
awk
当我们考虑数据量过大的时候我们vi编辑数据就会大大增加效率问题
所以我们可以使用sed来提升效率
sed本身也是一种管道命令,也可以将数据增删改查;
awk是一个文本处理分析工具,比较强大;
-n 安静模式;只显示对数据操作的数据;
-e 直接在命令行模式进行sed的动作编辑;
-f 直接将sed动作写在一个文件内;
-i 直接修改读取文件的内容,而不是由屏幕输出;
添加数据2a或者2i 可以灵活多用;
sed '2a0000' 1.txt
a表示每一行都加上数据
sed 'a0000' 1.txt
在文本里第二行插入数据;
sed -i '2i0000' 1.txt
显示第一行的命令 加上-n就是第实数据,不加-n会出现所有数据和想要的数据;
sed -n '1p' 1.txt
只想要第几行到第几行的数据
sed -n '2,10p' 1.txt 或者 cat /etc/hosts | sed -n '3,5p'
从第N行开始到结束$代表结束
cat /etc/hosts | sed -n '2,$p'
只需要文件中某某的数据'/master/p'
sed -n '/master/p' /etc/hosts 或者 cat /etc/hosts | sed -n '/master/p'
删除一行数据 加-i是删除文本中的数据
sed '2d' 1.txt
sed '3,5d' 1.txt
修改数据
sed '2c0000' 1.txt
nl 显示文本行号(可以代替cat使用)
nl /root/file/1.txt | sed '1,$p'
过滤,截断输出
cat /etc/hosts | grep '192' | sed 's/^\.*192//g'
将开头是#行删掉,然后空行替代
cat /etc/man.config | grep 'man' | sed 's/#.*$//g'
将开头是#行删掉,然后空行替代,d删掉(删除、替换都支持正则表达式)
cat /etc/man.config | grep 'man' | sed 's/#.*$//g' | sed '/^$/d'
输出第五行 打印第一个字段和第三个字段
last -n 5 | awk '{printf $1 "\t" $3 "\n"}'
last不支持管道。 xargs可以使last进行管道输出
sed文本处理
最新推荐文章于 2023-09-26 22:27:07 发布