目录
- sed行末/前一行/后一行追加字符
- linux sed命令
- 常用选项(OPTIONS)
- 总结
sed行末/前一行/后一行追加字符
linux sed命令
sed是stream editor的简称,也就是流编辑器。
可以接受来自文件或者来自管道的流。
其语法格式为:
sed OPTIONS… [SCRIPT] [INPUTFILE…]
常用选项(OPTIONS)
- -n使用安静silent模式。在一般sed的用法中,所有来自stdin的内容一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来
- -e直接在指令列模式上进行sed的动作编辑
- -f直接将sed的动作写在一个文件内,-f filename则可以执行filename内的sed命令
- -r让sed命令支持扩展的正则表达式(默认是基础正则表达式)
- -i直接修改读取的文件内容,而不是由屏幕输出
实例:
假如我们有文件foxinbox.txt, 内容如下:
Knox in box.
Fox in socks.
Knox on fox in socks in box.
Socks on Knox and Knox in box. Fox in socks on box on Knox.
1、替换字符串:
sed \’s/old_string/new_string/flags\’ filename.txt
note:默认情况下,sed命令只处理每一行的第一个匹配字符。如果需要全部匹配的话,加上g参数即可。表示全局替换
note:替换每一行的第n次匹配字符。后面添加数字即可,数字表示第n次匹配。add a number flag such as1,2, etc.:
例如只匹配第二次出现的box
sed -i \’s/1883/8883/\’ file.json
将file.json文件中的1883字符串替换为8883
查找file.json文件中 url字符串所在的行,只打印行号
line=$(grep -n \”url\” file.json | busybox awk -F \”:\” \'{print $1}\’)
echo $line
将filename文件中,字符串"url"所在的一整行替换为this is replace line
sed -i \’/url/c\\ this is replace line\’ filename
这个文件有非常多的:作为分隔符,我们想更加直观地查看,
sed \’s/:/\\t/g\’ /etc/passwd
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。