shell删除文本技巧 —— grep, cut, head, sed, awk
2011-09-19 01:16
609 查看
2011-09-19 wcdj
问题描述:
如何使用shell脚本删除samba的配置文件中的一个用户子项?samba的配置文件信息如下所示:
方法1:(只能删除固定行)
./test.sh samba.old user2 删除user2这部分,新的配置在samba.new中。
注意:在sed里使用变量的几种方法:
(1) sed ''$beg','$end'd' $1 > samba.new 对变量$var再加一对单引号,sed最外层是一对单引号
(2) sed "${beg},${end}d" $1 > samba.new 双引号会解释${var},sed最外层是一对双引号
方法2:(可以删除任意行,比较灵活)
参考:
shell文本删除问题
http://topic.csdn.net/u/20110918/21/d83546a1-1e47-487b-ac1d-9b03baa54937.html
sed学习笔记
http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/sed.htm
问题描述:
如何使用shell脚本删除samba的配置文件中的一个用户子项?samba的配置文件信息如下所示:
[global] workgroup = MYGROUP security = user [user1] path = /home/user1 public = no writeable = yes browseable = yes valid users = user1 [user2] path = /home/user2 public = no writeable = yes browseable = yes valid users = user2 [user3] path = /home/user3 public = no writeable = yes browseable = yes valid users = user3
方法1:(只能删除固定行)
./test.sh samba.old user2 删除user2这部分,新的配置在samba.new中。
#!/bin/sh beg=`grep "$2" -n $1 | cut -d":" -f1 | head -1` # beg=`grep "$2" -n $1 | cut -d":" -f1 | sed q` ((end=beg+5)) sed ''$beg','$end'd' $1 > samba.new
注意:在sed里使用变量的几种方法:
(1) sed ''$beg','$end'd' $1 > samba.new 对变量$var再加一对单引号,sed最外层是一对单引号
(2) sed "${beg},${end}d" $1 > samba.new 双引号会解释${var},sed最外层是一对双引号
方法2:(可以删除任意行,比较灵活)
#!/bin/sh # usage: ./xxx.sh samba.old keyword # $1=samba.old # $2=keyword awk -v var=$2 'BEGIN{ RS=""; ORS="\n\n\n\n" } { if($1 !~ var) print; }' $1
参考:
shell文本删除问题
http://topic.csdn.net/u/20110918/21/d83546a1-1e47-487b-ac1d-9b03baa54937.html
sed学习笔记
http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/sed.htm
相关文章推荐
- 几个常用的文本处理shell 命令:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk
- linux基础篇-07,linux文本处理cat more less head tail sort uniq grep cut jion sed awk
- shell中的grep,awk,sort,cut,sed
- shell 文本处理的几个命名sed,awk,sort,uniq,cut
- 基本文本编辑diff,cut,grep sed,awk
- shell工具——cut、tr、grep、sort、uniq、re、sed、awk
- 获取文本中你需要的字段的 几个命令 grep awk cut tr sed
- 几个常用的文本处理shell 命令:find、grep、sort、uniq、sed、awk
- shell 删除文本中的重复行(sort+uniq/awk/sed) (方法=效率啊)
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
- shell字符串操作总结(注重:cut,sed、awk、grep)
- Linux的shell脚本grep、sed、awk练习和diff、patch、cut、sort介绍
- shell中的grep,awk,sed,cut,sort
- 【shell脚本】常用工具的学习grep、sed、awk、cut
- shell脚本抽取制定字符串、grep+awk+cut+sed
- 获取文本中你须要的字段的 几个命令 grep awk cut tr sed
- shell脚本---grep、awk、sed工具
- shell学习笔记[grep,sed,awk,sort,for,until,while]
- sed,awk,grep,trap,trap,cut,tr,curl,find
- 常用文本过滤命令笔记(find grep wc awk sed sort uniq split)