的首要问题: 所以我有进来 JohnSmith14_120325_A10_6.raw 形式的文件名,我想用正则表达式来进行匹配。我在构建一个工作示例时遇到了一些问题,但不幸的是,除非我掌握基础知识,否则我的问题将无法解决。匹配文件名使用grep
因此,我最近刚刚了解到管道系统,我学到的一件很酷的事情是我可以做以下事情。
X=ll_paprika.sc (don't ask)
VAR=`echo $X | cut -p -f 1`
echo $VAR
这给了我paprika.sc 现在,当我尝试在grep命令来执行管的想法,没有任何反应。
x=ll_paprika.sc
VAR=`echo $X | grep *.sc`
echo $VAR
任何人都可以解释我做错了什么?
第二个问题: 如何使用正则表达式匹配单个下划线?
这是我最终试图做的;
VAR=`echo $X | grep -e "^[a-bA-Z][a-bA-Z0-9]*(_){1}[0-9]*(_){1}[a-bA-Z0-9]*(_){1}[0-9](\.){1}(raw)"
所以在这里我的模式的基本思路是,文件名必须以字母 开始,然后它可以有任意数量的字母和数字下它,它必须有一个_分隔的一系列数字另一个_分隔下一组数字和字符,另一个_分隔下一组数字,然后它必须有一个跟随原始单个时间段。这看起来非常错误和丑陋(因为我不确定语法)。那么如何匹配文件扩展名?有人可以举一个简单的例子ll_parpika.sc,以便我能弄清楚如何做自己的正则表达式?
谢谢。