Linux sed使用
sed命令使用
sed 的
-i选项可以直接修改文件内容
增加
- 在第一行添加插入nginx,之前第一行内容会到下一行
sed -i '1i nginx' /home/env.conf - 在指定文件中第三行增加nginx
sed -i "3i nginx" /home/entrypoint.sh - 在第五行添加内容,新的内容会在下一行出现
sed -i '5a nginx' /home/env.conf - 在最后一行添加内容
sed -i '$a nginx' /home/env.conf
删除
- 删除第一行内容
sed -i '1d' /home/env.conf - 删除第四行内容
sed -i '4d' /home/env.conf - 删除5 - 7行内容
sed -i '5,7d' /home/env.conf - 删除最后一行
sed -i '$d' /home/env.conf - 删除空行
sed "/^$/d" /home/env.conf - 删除匹配上模式的行
sed -i "/pattern/d" log.txt - 删除匹配行的上一行和下一行
sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename - 删除匹配到特定字符所在行的上一行
sed -i -e '$!N;/\n.*string/!P;D' filename - 删除匹配到特定字符所在行的下一行
sed -i -e '/string/{n;d}' filename
替换
/home/test/下所有文件中nginx替换为apachesed -i "s/nginx/apache/g" `grep nginx -rl /home/test/`- 将8行内容替换成nginx
sed -i "8c nginx" /home/log.txt - 将2 - 5行内容替换成nginx
sed -i "2,5c nginx" /home/log.txt - 替换空白字符为其他字符
sed -i -e 's/[[:space:]][[:space:]]*/,/g' file - 给匹配到文件中具体的字符串的下一行插入一行数据
sed -i '/listen/a\listen 80' filename - 给匹配到文件中具体的字符串的上一行插入一行数据
sed -i '/listen/i\listen 80' filename - 在匹配到特定字符串的某行后批量插入多行数据
sed -i '/syncsendmsg.php/a\#013.平台广告小时计划每5分钟写入主平台 xxx 2019-07-04\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_main.php\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_h_main.php' filename
查询
- 仅列出 /etc/passwd 文件内的第 5-7 行
sed -n '5,7p' /home/env.conf - 搜索 /etc/passwd 有root关键字的行
sed '/root/p' /etc/passwd
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
