的首要問題: 所以我有進來 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,以便我能弄清楚如何做自己的正則表達式?
謝謝。