gpt4 book ai didi

regex - 用grep匹配固定字符串+数字0-10

转载 作者:行者123 更新时间:2023-11-29 09:42:57 24 4
gpt4 key购买 nike

我有一个这样的文件列表:

Sample_lane1-Bob10_R1.fastq.gz
Sample_lane1-Bob1_R1.fastq.gz
Sample_lane1-Bob2_R1.fastq.gz
Sample_lane1-Bob4_R1.fastq.gz
Sample_lane1-Bob5_R1.fastq.gz
Sample_lane1-Bob7_R1.fastq.gz
Sample_lane1-Bob8_R1.fastq.gz
Sample_lane1-Bob9_R1.fastq.gz
Sample_lane2-Bob10_R1.fastq.gz
Sample_lane2-Bob1_R1.fastq.gz
Sample_lane2-Bob3_R1.fastq.gz
Sample_lane2-Bob4_R1.fastq.gz
Sample_lane2-Bob6_R1.fastq.gz
Sample_lane2-Bob7_R1.fastq.gz
Sample_lane2-Bob8_R1.fastq.gz
Sample_lane2-Bob9_R1.fastq.gz
Sample_lane3-Bob11_R1.fastq.gz
Sample_lane3-Bob12_R1.fastq.gz
Sample_lane3-Bob13_R1.fastq.gz
Sample_lane3-Bob15_R1.fastq.gz
Sample_lane3-Bob16_R1.fastq.gz
Sample_lane3-Bob18_R1.fastq.gz
Sample_lane3-Bob19_R1.fastq.gz
Sample_lane3-Bob20_R1.fastq.gz
Sample_lane5-Bob11_R1.fastq.gz
Sample_lane5-Bob12_R1.fastq.gz
Sample_lane5-Bob16_R1.fastq.gz
Sample_lane5-Bob17_R1.fastq.gz
Sample_lane5-Bob19_R1.fastq.gz
Sample_lane5-Bob20_R1.fastq.gz
Sample_lane8-Sample1_R1.fastq.gz
Sample_lane8-Sample2_R1.fastq.gz
Sample_lane8-Sample3_R1.fastq.gz
Sample_lane8-Sample4_R1.fastq.gz
Sample_lane8-Sample5_R1.fastq.gz

我只想返回标记为“Bob1”到“Bob10”的文件,以便执行一些下游操作,我想返回标记为“Bob11”到“Bob20”的文件。

我一直在尝试将 grep 与正则表达式一起使用,但无法同时匹配“Bob”和相邻的数字范围。例如,这是许多行不通的行之一:

grep -E "Bob@([10|0-9])"

我已经尝试了Bob10|0-9"() 的许多不同组合, 和 [] 根据我在网上找到的不同教程在不同的地方,但到目前为止都没有用。

编辑:为了完整起见,@anubhava 给出的解决方案解决了上述问题:

grep -E "Bob(10|[0-9])_"

我没有特别要求正则表达式返回范围的另一半,'Bob11'-'Bob20',但根据 this 提出了这个解决方案页:

grep -E "Bob([1-2][1-9])_"

最佳答案

您可以将此正则表达式用于针对文件的 grep:

grep -E "Bob(10|[0-9])_" file

但是,如果您在目录中使用 glob 模式,则使用此 extended glob:

shopt -s extglob
printf "%s\n" *Bob@(10|[[:digit:]])_*

输出:

Sample_lane1-Bob10_R1.fastq.gz
Sample_lane1-Bob1_R1.fastq.gz
Sample_lane1-Bob2_R1.fastq.gz
Sample_lane1-Bob4_R1.fastq.gz
Sample_lane1-Bob5_R1.fastq.gz
Sample_lane1-Bob7_R1.fastq.gz
Sample_lane1-Bob8_R1.fastq.gz
Sample_lane1-Bob9_R1.fastq.gz
Sample_lane2-Bob10_R1.fastq.gz
Sample_lane2-Bob1_R1.fastq.gz
Sample_lane2-Bob3_R1.fastq.gz
Sample_lane2-Bob4_R1.fastq.gz
Sample_lane2-Bob6_R1.fastq.gz
Sample_lane2-Bob7_R1.fastq.gz
Sample_lane2-Bob8_R1.fastq.gz
Sample_lane2-Bob9_R1.fastq.gz

关于regex - 用grep匹配固定字符串+数字0-10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35489658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com