LINUX下令-sed
本文编辑小绝技-sedsed下令是用于对文本文件做内容操纵的神器,常见的增删改都可以,查没必要用它,用grep或者gvim打开用vim的搜索匹配就行。
sed 下令的基本格式如下:
sed -hnVi 'action'或者
sed -e expression参数说明:
参数含义及用法-hhelp-Vversion,版本信息-ised下令默认是将做的修改输出到终端中,并不对原始文件做修改,而-i参数后边的‘action’将直接对原始文件做修改,所以这招慎用。-nsed下令默认会将修改后文件的全部内容输出,-n则仅体现处理惩罚后的效果-e前边几个action要放在‘’里,而加-e则不需要了,直接写你的expression动作说明:
动作作用及用法a新增,会将a后的字符串在目的对象或者目的行的下一行增长,用法: 目的对象/目的行a\newline 目的file。留意a后边要跟反斜杠c替换,可以将目的对象或者目的行替换为c后边的字符串。用法:目的行/目的对象c\替换字符串 目的filed删除,将目的行目的对象删除。用法:目的对象/目的行d目的file。d后边不跟任何东西。i插入,在目的对象/目的行上一行插入字符串,用法基本同a。p打印,将目的对象目的行打印出来,同样p后不跟任何东西,常和-n参数一起用。s替换,最最常用的,将目的范围行内的oldlstr替换为newstr。目的行,目的范围说明:
n第n行n1,n2n1到n2行^行首,多用在替换时正则匹配中$尾行;如果用在s的正则匹配中,代表行尾1首行目的对象说明:
目的对象及你想操纵的目的字符串,可以用正则匹配,用两个斜杠左右包围:
/目的对象或者目的字符串,可用正则匹配/下面是举了多少例子来练习,留意由于下面的练习都没加-i参数,所以都不是对原始文本直接做的修改,而是全部都输出到terminal上,同砚们在应用时如果需要下面的操纵都直接对原始文本做修改,sed后跟上 -i 参数就可以啦。
测试文件内容如图:
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213430052-1846555585.png
1.在第二行到第四行每行下边增长一行字符串“input [:]”
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213612091-72039575.png
用-e的话就不消加‘’了
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213633786-964504515.png
2.在首行前插入一行字符串“the lord ring”
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213729226-1813066409.png
3.删除整个文本中中间有空格的行,以及删除第三行到第五行之间的空格(就这个测试文件来说,其实就相当于删除全文的空格啦)
删除有空格的行:
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213810207-1012196194.png
删除第三行到第五行之间的空格,其实就是用s替换,将空格替换掉:
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213826735-623025415.png
4.打印第6行,分别使用-n和不-n查看他们的差别
不-n
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213849885-112804245.png
用-n
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213902764-1791700015.png
5.将3到4行替换为“new new”
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628213930926-386327787.png
6.查找并打印含有”wo“的行,并比较-n 和不 -n的差别
不-n
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214027498-1101252888.png
用-n
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214038792-676385820.png
7.分别使用c动作和s动作,查找“wo”字符串并替换为“input [:]”
用c替换,由图可知,用c替换时将整个一行都替换掉了。
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214059816-722141772.png
用s替换,由图可知s替换是只替换匹配到的字符。
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214113995-566105224.png
8.$的使用,删除尾行;将ing结尾的替换为ed结尾
删除尾行
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214128876-1480907010.png
ing结尾替换为ed结尾
https://img2024.cnblogs.com/blog/3228746/202406/3228746-20240628214140569-1673663501.png
通过这些练习相信sed的常见用法你已经基本把握了,不管是写shell脚本照旧在terminal中提升自己的处理惩罚速度都很有用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]