免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1053 | 回复: 6
打印 上一主题 下一主题

[文本处理] echo文件内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-20 16:43 |只看该作者 |倒序浏览
本帖最后由 LIerWx 于 2016-10-20 16:47 编辑

如题,我的文本是下面这样
  1. ## Next comes the main part: which users can run what software on
  2. ## which machines (the sudoers file can be shared between multiple
  3. ## systems).
  4. ## Syntax:
  5. ##
  6. ##      user    MACHINE=COMMANDS
  7. ##
  8. ## The COMMANDS section may have other options added to it.
  9. ##
  10. ## Allow root to run any commands anywhere
  11. root    ALL=(ALL)       ALL

  12. *       *=(*)           ALL
  13. *       *=(aaa)         ALL
  14. ## Allows members of the 'sys' group to run networking, software,
  15. ## service management apps and more.
  16. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

  17. ## Allows people in group wheel to run all commands
  18. %wheel  ALL=(ALL)       ALL

  19. ## Same thing without a password
  20. # %wheel        ALL=(ALL)       NOPASSWD: ALL

  21. ## Allows members of the users group to mount and unmount the
  22. ## cdrom as root
  23. # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
复制代码
我在脚本里判断时要打印信息,如下:
  1. [root@localhost  ~]#
  2. [root@localhost  ~]# cat /etc/sudoers | sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d'
  3. *        *=(*)                ALL
  4. [root@VM1 ~]#
复制代码

但我在echo `cat /etc/sudoers | sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d'` 时,却把当前目录的内容也打印出来了 最后那段才是我要的信息,要如何只显示命令输出内容?
  1. [root@localhost ~]# echo `cat /etc/sudoers | sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d'`
  2. a.md5 anaconda-ks.cfg a.sh a.txt auth_14.sh AUTH_15.sh b.sh Desktop Documents Downloads Music mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz nginx-1.11.4 nginx-1.11.4.tar.gz php-5.6.26 php-5.6.26.tar.gz Pictures Public Templates Videos zabbix-3.0.0beta1 zabbix-3.0.0beta1.tar.gz *=(*) ALL
  3. [root@localhost ~]#
复制代码





论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
2 [报告]
发表于 2016-10-20 16:50 |只看该作者

  1. sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' /etc/sudoers
复制代码

?

论坛徽章:
0
3 [报告]
发表于 2016-10-20 16:59 |只看该作者
回复 2# moperyblue

  1. [root@VM1 ~]#
  2. [root@VM1 ~]# echo `sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' /etc/sudoers`
  3. 1.txt a.md5 anaconda-ks.cfg a.sh a.txt auth_14.sh AUTH_15.sh b.sh Desktop Documents Downloads Music mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz nginx-1.11.4 nginx-1.11.4.tar.gz php-5.6.26 php-5.6.26.tar.gz Pictures Public Templates Videos zabbix-3.0.0beta1 zabbix-3.0.0beta1.tar.gz *=(*) ALL
  4. [root@VM1 ~]#
复制代码
不行的,echo出来还是会显示当前目录下文件。。。

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
4 [报告]
发表于 2016-10-20 17:01 |只看该作者
为什么要echo? 你想达到什么结果?

论坛徽章:
0
5 [报告]
发表于 2016-10-20 17:08 |只看该作者
回复 4# moperyblue

  1. #!/bin/bash
  2. sdo=`cat /etc/sudoers | sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' |wc -l`
  3. if [ $sdo -ge 1 ];then
  4.          echo `sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' /etc/sudoers`
  5. else
  6.         echo 1
  7. fi
复制代码
运行脚本,存在*    *=(*)        ALL 这行的就把他打印出来,但打印老是报那个错

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
6 [报告]
发表于 2016-10-20 17:12 |只看该作者
  1. #!/bin/bash
  2. sdo=`cat /etc/sudoers | sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' |wc -l`
  3. if [ $sdo -ge 1 ];then
  4.     sed -r '/^\s*\*\s+\*=\(\*\)\s+ALL\s*$/!d' /etc/sudoers
  5. else
  6.     echo 1
  7. fi
复制代码
回复 5# LIerWx


论坛徽章:
0
7 [报告]
发表于 2016-10-20 17:16 |只看该作者
回复 6# moperyblue

可以了 多谢大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP