我需要從一個.sql文件名中提取一些數字:從「TDB_full_335.51_2013_02_14.sql」 我只希望「2013_02_14」 我能得到這樣的:找到一個4位數字,並得到文本之後他們
echo $(find -s ~/Downloads | grep -e '\.sql' | awk -F/ '{print $NF}' | sed -n '/TDB_full/p' | awk 'END{print}' | awk '{gsub(".sql", "");print}' | cut -d "_" -f4 -f5 -f6)
這是現在可以,但如果文件名長度改變這將失敗。有沒有辦法搜索4位數字「2013」並獲得「.sql」之後的數字?
,如果發現這一點:
grep -o '\([[:digit:]]\)\{4\}'
,但給我的只有 「2013」
我不認爲肯·湯普森與UNIX哲學不得不考慮到這一點。這是我見過的最糟糕的管道之一。 –