这篇文章主要介绍了sed有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
管道命令sed是一个很好的文本处理工具,主要以行为单位进行处理,可以将数据进行替换、删除、新增、选取等。sed可以处理标准输入内容或者文件,可以输出标准输出或输出到文件。sed的一般使用规则如下:
sed -nefri '动作命令' 文件或输入
参数设置:
-n:使用安静(silent)模式。在一般sed的用法中,所有来自STDIN的资料一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。
-e:直接在命令行模式上进行sed的动作编辑;
-f:直接将sed的动作命令写在一个档案内,-ffilename则可以执行filename内的sed动作;
-r:sed动作支持的是拓展正规表示法的语法(默认基础正规表示法语法)。
动作命令:
a:新增,a后可以接字串,这些字串会在新一行出现(目前的下一行);
c:替换,c的后面可以接字串,这些字串可以取代n1、n2之间的行!
d:删除,因为是删除啊,所以d 后面通常不接任何东西;
g:全局,表示动作命令在行内全局执行,也即如果行内有多个关键字,全部删除或替换;
i:新增,i后可以接字串,这些字串会在新一行出现(目前的上一行);
p:打印,亦即将某个选择的资料印出,通常p会与参数sed-n一起运行;
⑴新增与删除功能
sed可以以行为单位按照行号进行删除,例如列出文件内容打印行号并删除第2-5行:
可以看到标准输出的内容少了2-5行,最后一行可以使用“$”代指。这里省略了-e,也即默认就是在命令行模式,还可以根据关键字进行删除,例如删除含有“CHEN”的行:
但是这时文件的内容并没有被更改,如要是删除原文件的内容并保存,可以使用-i参数直接对文件执行命令:
这时很明显的看出两个新增命令a和i的区别。可以使用“\+回车”来增添多行内容,示例如下:
⑵替换与显示功能
sed中的动作命令p可以根据行号显示内容,例如选择显示文件中的第5-7行内容:
sed中的动作命令c可以进行整行内容替换,例如将文件第2-4行重复内容替换为“reduplicates”:
sed中的动作命令s可以以行为单位查找关键字并进行替换,其中要查找的关键字可以搭配正则表达式进行,例如将文件中所有的“:”替换为“;”:
其中g表示全局,也即每一行进行全部替换,若不加g则只替换找到的第一个关键字:
sed还可以直接处理文件,在多文库数据处理时,遇到重复barcode的情况,常需要进行barcode替换,如下所示:
感谢你能够认真阅读完这篇文章,希望小编分享的“sed有什么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。