Chinaunix

标题: 正则取值 [打印本页]

作者: davie5201314    时间: 2016-02-19 15:45
标题: 正则取值
本帖最后由 davie5201314 于 2016-02-19 16:49 编辑

echo '1602 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624 1702 1704'

如果要取出1612 1614 1616 1618 1620,如何做到?
作者: itfly3    时间: 2016-02-19 15:57
echo '1602 1604 1606 1608 1610 1612 1614 1616 1618 1620'|sed -r 's/.*(1612)/\1/'
作者: songyc_2015    时间: 2016-02-19 16:14
grep -Po '16[12][02468]'
作者: davie5201314    时间: 2016-02-19 16:34
这个不行,后面还有呢,我只是没写出来回复 3# songyc_2015


   
作者: jason680    时间: 2016-02-19 16:57
回复 1# davie5201314

$ echo '1602 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624 1702 1704' | grep -oP '1612.*1620'
1612 1614 1616 1618 1620


   
作者: ljwd1000    时间: 2016-02-19 17:45
  1. echo '1602 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624 1702 1704' | grep -oP '161[2468]|1620'
复制代码

作者: davie5201314    时间: 2016-02-19 17:50
本帖最后由 davie5201314 于 2016-02-19 17:58 编辑

所有数字都放到文本文件中,一个数字一行,你又当如何取出呢?,例如某个文件夹后面都是1602.txt 1604.txt 1606.txt.......这样的小文件,要取出1612.txt 1614.txt 1616.txt 1618.txt 1620.txt这几个文件?回复 5# jason680


   
作者: jason680    时间: 2016-02-19 18:26
本帖最后由 jason680 于 2016-02-19 18:26 编辑

挤牙膏......你不和谐

X-Y problem
作者: baby_神    时间: 2016-02-19 18:38
8楼说的对,X-Y problem
你把你的需求直接说出来,有可能解决办法不是你想的那样
作者: jcdiy0601    时间: 2016-02-22 10:32
  1. echo '1602 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624 1702 1704'|awk '{for(i=1;i<=NF;i++)if($i~/161[2468]|1620/)printf("%s ",$i)}'
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2