最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

sed文本处理工具常见用法

来源:博客园


【资料图】

sed是一个非交互式的文本处理工具,它默认不会修改源文件,它是把文件中的内容逐行copy到缓冲区,然后在缓冲区中进行处理,最后把处理的结果显示到屏幕上并清空缓冲区然后再从文件中读取下一行到缓冲区,重复这个过程,直到所有的行都处理完。如果设置了处理行范围则只处理范围内的行,没有指定时则处理所有的行。处理选定的行使用数字表示地址行号,$符号表示最后一行。
# 只查看文件的第3行sed -n "3p" datafile# 只查看文件的第100行到第200行 sed -n "100,200p" mysql_slow_query.log
2个地址使用“,”分割,表示在这2个范围之间,前后地址可以使用正则或数字表示。
sed "2,5d" datafile#删除第二到第五行sed "/My/,/You/d" datafile#删除包含"My"的行到包含"You"的行之间的行sed "/My/,10d" datafile#删除包含"My"的行到第十行的内容

sed工具的命令与选项

选项-e 进行多重编辑,即对在缓冲区的这一行做连续编辑;前面的编辑完,后面的接着编辑。-n 取消默认的输出-f 指定sed脚本的文件名命令d 删除行p 打印行s 用一个字符串替换另一个g 在行内进行全局替换正则表达式sed使用的正则表达式是括在斜杠线"/"之间的模式。^ 行首定位符 /^my/ 匹配所有以my开头的行$ 行尾定位符 /my$/ 匹配所有以my结尾的行. 匹配除换行符以外的单个字符 /m..y/ 匹配包含字母m,后跟两个任意字符,再跟字母y的行* 匹配零个或多个前导字符 /my*/ 匹配包含字母m,后跟零个或多个y字母的行[] 匹配指定字符组内的任一字符 /[Mm]y/ 匹配包含My或my的行常见使用方式p命令p: 打印指令,n: 取消默认打印。两个同时使用,表示只打印选定的行。
sed "/my/p" datafile#默认情况下,sed把所有输入行都打印在标准输出上。如果某行匹配模式my,p命令将把该行另外打印一遍。sed -n "/my/p" datafile#选项-n取消sed默认的打印,p命令把匹配模式my的行打印一遍。
d命令删除选定的行
sed "$d" datafile#删除最后一行,其余的都被显示sed "/my/d" datafile#删除包含my的行,其余的都被显示
s命令字符串替换
sed "s/^My/You/g" datafile#命令末端的g表示在行内进行全局替换,也就是说如果某行出现多个My,所有的My都被替换为You。sed -n "1,20s/My$/You/gp" datafile#取消默认输出,处理1到20行里匹配以My结尾的行,把行内所有的My替换为You,并打印到屏幕上。
e选项连续编辑,对应缓冲区的一行文本,做顺序的连续编辑处理
sed -e "1,10d" -e "s/My/Your/g" datafile#选项-e用于进行多重编辑。第一重编辑删除第1-10行。第二重编辑将出现的所有My替换为Your。因为是逐行进行这两项编辑(即这两个命令都在模式空间的当前行上执行),所以编辑命令的顺序会影响结果。
参考文章:https://blog.csdn.net/gua___gua/article/details/49304699

关键词: