sed 命令(1)

Sed命令使用规则:
-n:打印定位的行数
例如:sed  -n ‘2p’  quote.txt(只打印第2行的内容)
sed  ‘2p’  quote.txt(会打印全部的文件内容)
指定范围:
Sed -n ‘1,3p’  quote.txt(打印1到3行的内容)

模式区配
sed -n ‘a’p quote.txt(打印包含a的行,如果有多行全部打印)
sed -n '1,/A/'p quote.txt  (在第一行查询A)
$:表示最后一行的意思
sed -n '/.*ing/'p quote.txt :(匹配任意思字符0次或多次并以ing结尾的行)
打印模式匹配的行号使用:/pattern/=
sed -e '/A/=' quote.txt (打印匹配A的行号,意为A在该文件的第几行,此命令输出的结果打印的是全部文件内容,和A的行号)
sed -n ‘/A/=’ quote.txt(只打印匹配A行的行号)
sed -n -e '/A/=' -e '/A/p' quote.txt (打印匹配A的行及行号使用2个连续的-e选项)
sed '1d' quote.txt (删除第1行)
sed '1,3d' quote.txt (删除第1到3行的内容)
sed '/Neave/d' quote.txt (删除包含/Neave/文本的行)
sed 's/a/A/' quote.txt (将a替换成A)
sed 's/a/A/g' quote.txt(/g表示全局替换)
sed s/a/A/w sed.out quote.txt (将小写a替换成A,并输出到sed.out文件中,将替换结果输出到一个文件用w选项)
sed '/A./r sedex.txt' quote.txt  (将文本sedex.txt文件中的内容附加到quote.txt文件中,,附加的位置放在匹配行A的下面)
sed '/.a.*/q' quote.txt (查询a首次出现的行,并退出)
sed 's/^0*/ /g' dos.txt (删除行首的0,^ 0 *表示行首任意个0,^表示模式从行首开始)
使用s / - * / / g删除横线- - - - - -。
使用/ ^ $ / d删除空行
使用$ d删除最后一行
使用1 d删除第一行
使用awk {print $1}打印第一列
sed 's/[0-9][0-9]*/& Passwd/g' ok.txt (在文件每一行的末尾添加Passwd)
r:命令是读命令。Sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上
例如:sed  ‘/Suan/r  newfile’ datafile
如果在datafile文件的某一行匹配到模式Suan,就在该行后读入文件newfile的内容,如果出现Suan的不止一行,则在出现Suan的各行后都 读入newfile文件的内容
w:命令是写命令,sed使用该命令将当前文件中的一些行写到另一个文件中。
例如:sed -n ‘/north/w  newfile’ datafile
从datafile文件中读取包含north的行,并输出到newfile文件中

Sed的增删改查操作
添加(用a选项)
a:在第二行后添加(也就是在第3行添加)
cat -n passwd | sed '2a i am fine'
在第2行后增加两行,使用\n
nl passwd | sed '2a hell\nhow are you'
替换(用c选项)
nl passwd | sed '2,5c hahaha'(将2-5行替换成hahaha)
注意:sed 的-n选项与p一起使用才能输出指定的行
sed 's/ 要被取代的字符串 / 新的字符串 /g'
执行多条命令可以使用-e选项:
例如:nl passwd | sed -e '3,$d' -e 's/bash/hahaha/g'
删除(使用d选项)
nl passwd | sed '/root/d'(删除包含root的行)
nl passwd | sed -n '/root/{s/bash/blueshell/;p}'(查找包含root的行,并将该行中的bash替换成blueshell,并打印该行,-n可以输出该行的行号)
sed -i '$a bye' ab #在文件 ab 中最后一行直接输入 "bye"
10,4d' 只删除第 10 行,因为 sed 不能反方向工作
4,+5d' 这将匹配文件中的第 4 行,删除这一行之后,继续删除下一个五行,然后停止其删除操作并输出其他行
2,5!d' 这将删除除 2 到 5 行外的所有其他行。
posted @   山村放羊娃  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示