免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3073 | 回复: 11

[文本处理] shell脚本中如何转义识别 grep里的正则 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之八一
日期:2017-02-21 17:19:04
发表于 2017-02-21 17:13 |显示全部楼层
本帖最后由 psmzs 于 2017-02-21 18:54 编辑

有一个变量a容为
2  
3
11
12
  找出不存在于a中的数字
在shell脚本里
for var in {1..20}
do
  if ! echo "$a"  | grep -q "$var"  ; then
       echo $var
  fi
done

比如排除不了1 这个数字   想在 $var 前后加上^和$,但是不行,不知道如何处理才能  让^  和$起效,跪求指教
知道需要转义,但是没有头绪,试了几个,不行。

论坛徽章:
0
发表于 2017-02-21 17:54 |显示全部楼层
  1. [jerry@jerry-pc ~]$ cat 1
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. [jerry@jerry-pc ~]$ cat 2
  10. 4
  11. 5
  12. 6
  13. 7
  14. 8
  15. 9
  16. [jerry@jerry-pc ~]$ grep -vFf1 2
  17. 8
  18. 9
复制代码

论坛徽章:
1
15-16赛季CBA联赛之八一
日期:2017-02-21 17:19:04
发表于 2017-02-21 18:44 |显示全部楼层
回复 2# nuclearxin

能不能在grep上进行修改下,而不是导入两个文件比较异同

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
发表于 2017-02-21 21:04 |显示全部楼层
  1. [root@CentOS_6 ~]# for var in {1..20}
  2. > do
  3. >   if ! echo "$a"  | grep -q "^${var}$"  ; then
  4. >        echo $var
  5. >   fi
  6. > done
  7. 1
  8. 4
  9. 5
  10. 6
  11. 7
  12. 8
  13. 9
  14. 10
  15. 13
  16. 14
  17. 15
  18. 16
  19. 17
  20. 18
  21. 19
  22. 20
复制代码

论坛徽章:
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
发表于 2017-02-21 21:55 |显示全部楼层

for var in {1..20}
do
  if ! echo "$a"  | grep -q "\b$var\b"  ; then
       echo $var
  fi
done

论坛徽章:
765
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
发表于 2017-02-23 12:33 |显示全部楼层
为什么不把a搞成一个数组,而要用字符串比较呢?

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
发表于 2017-02-23 13:12 |显示全部楼层
回复 6# Herowinter

额额, 为啥要用 搞 哇

论坛徽章:
1
15-16赛季CBA联赛之八一
日期:2017-02-21 17:19:04
发表于 2017-03-26 20:19 |显示全部楼层
回复 6# Herowinter

把 a整成数组,那后来的比较怎么做呢?

论坛徽章:
1
15-16赛季CBA联赛之八一
日期:2017-02-21 17:19:04
发表于 2017-03-26 20:20 |显示全部楼层
回复 4# zy86416779

谢谢了,我开始试的不行,现在不知道为啥可以了。。。

论坛徽章:
1
15-16赛季CBA联赛之八一
日期:2017-02-21 17:19:04
发表于 2017-03-26 20:20 |显示全部楼层
回复 5# moperyblue

谢谢!学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP