当前位置:  技术问答>linux和unix

shell文本删除问题求助

    来源: 互联网  发布时间:2017-01-01

    本文导语:  请问如何使用shell脚本删除samba的配置文件中的一个用户子项啊? samba的配置文件信息如下所示: [global]         workgroup = MYGROUP         security = user [user1]         path = /home/user1         public = n...

请问如何使用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

现在需要写一个shell脚本userdel.sh, 传递一个参数, 譬如参数为user2,  执行sh  userdel user2之后, 将从上面的samba配置文件中把user2的信息删除, 删除后的内容变为:
[global]
        workgroup = MYGROUP
        security = user

[user1]
        path = /home/user1
        public = no 
        writeable = yes  
        browseable = yes
        valid users = user1

[user3]
        path = /home/user3
        public = no 
        writeable = yes  
        browseable = yes
        valid users = user3

请问这个shell脚本该怎么写啊? 哪位高手可以帮帮忙? 万分感激!!


|
grep -n userN,获取所在的行号,假如获取的是10行,再用删除行sed -n '10,15p' 配置文件.ini 

|
错了,删除是sed -n '10,15d'

|
这样用:
./test.sh samba.old user2   删除user2这部分,新的配置在samba.new中

#!/bin/sh

beg=`grep "$2" -n $1 | cut -d":" -f1 | head -1`
((end=beg+5))
sed  "${beg},${end}d" $1 > samba.new


|
试了下,这样都可以

(1) sed  ''$beg','$end'd' $1 > samba.new 对变量$var再加一对单引号,sed最外层是一对单引号
(2) sed  "${beg},${end}d" $1 > samba.new 双引号会解释${var},sed最外层是一对双引号

|
awk -v value=$para 'BEGIN{RS="";ORS="nn"}{if($1!~value)print }' file > tmp
mv tmp file

重定向一下

RS和ORS分别是输入和输出的记录分隔符,简单说以前是按n分隔记录的,RS=""以后,相当于把空行作为了分隔符,然后把匹配value的段落给屏蔽输出
这个需要先学习下awk,否则不好理解

    
 
 

您可能感兴趣的文章:

  • linux bash shell命令:grep文本搜索工具简介
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 急问:怎么将一个文本文件平均拆分成10个文本文件?在shell里面怎么实现?谢谢
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • Shell编程:如何在一个文本文件中的第N行插入一行文本?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • shell 编程关于 文本格式转换问题
  • 在LINUX下做文本处理的工作,一般是用SHELL脚本还是动态语言方便?
  • shell中读取一个文本文件将内容按行保存成数组变量
  • 请教shell的问题,关于文本文件的修改和添加
  • 请问在文本终端下,怎么用shell命令使网卡发送数据?
  • 关于shell编程的文本处理
  • 【在线急等求助】UNIX-shell程序,对文本文件进行操作
  • 求一段查询并替换文本字符的shell脚本
  • hp unix: shell 或 AWK 怎样给一行文本记录加上回车换行符呀(rn) ?
  • 如何用shell替换文本中指定的字符串,在线等,急,请各位大侠帮忙!
  • 请问如何用shell脚本将一个文本文件的某几行输入到另一个文件中。
  • 请问如何用shell来读写文本文件呢?
  • shell命令:用sed如何删除一个文本文件的所有行
  • 跪求:shell如何替换文本中匹配的一行
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 如何用shell实现向文件删除或添加一行信息
  • shell 删除目录下指定的文件?
  • bash shell 如何实现删除文件中的各行字符呢?
  • shell脚本里面,用什么指令删除字符串中子串
  • 在shell脚本中如何使用FTP一次删除远端的多个文件?
  • 在UNIX中,怎样写一个SHELL,删除目录下所有文件的前二行。
  • 请指点:用Shell编程完成删除7天前的日志文件
  • 请教一下,如何用shell 编程实现删除超过一定时间以前的文件?
  • 用shell编程,如何循环删除文件?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助关于Java调用shell再传值给shell的问题
  • 求助!!shell调用问题
  • 求助shell 如何判断目录是否空,或者不为空?
  • 有关shell的小问题,紧急求助!
  • [求助]一个shell查询文件名的问题
  • crontab无法启动shell脚本,求助!
  • 求助SHELL程序
  • 求助:一道简单的shell编程题目
  • 求助shell编程的打印问题
  • 求助几个SHELL脚本 我是 新手
  • 求助:有关shell编程的问题
  • 求助:shell脚本读取文件内容
  • 100 求助 一个简单的shell
  • shell 脚本求助
  • 关于shell中的while循环的使用,求助
  • 求助shell编程
  • 求助:linux shell编程求素数问题
  • 菜鸟求助 SHELL编
  • shell sort求助
  • 求助一个Shell脚本问题!
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • shell变量和子shell的问题请教
  • 请问“当前shell”和“子shell”的区别?
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3