回答
$ foo="abcX23"
$ echo "$(echo "$foo" | sed 's/.*\(X[0-9][0-9]\)$/\1/')"
X23
或
if [[ "$foo" =~ X[0-9][0-9]$ ]]; then
echo "${foo:$((${#foo}-3))}"
fi
downvote沒有評論?我的答案如何錯誤或誤導? – ghoti 2012-07-18 13:19:25
有一個漂亮的正則表達式=~
操作時使用double square brackets。被捕獲的組在$BASH_REMATCH
陣列中可用。
if [[ $STRING =~ (X[0-9]{2})$ ]]; then
echo "matched part is ${BASH_REMATCH[1]}"
fi
到目前爲止最簡單的解決方案!我只花了2個小時瞭解如何使用模式擴展,但它似乎有點奇怪!所以謝謝;) – HanniBaL90 2017-12-02 19:29:01
您還可以使用參數擴展:
V="abcX23"
PREFIX=${V%%X[0-9][0-9]} # abc
SUFFIX=${V:${#PREFIX}} # X23
讓我們把你的輸入作爲
INPUT.TXT
ASD123
GHG11D3456
FFSD11dfGH
FF87SD54HJ
而且我想要找的模式「SD [數字] [數字]」
代碼
的grep -o 'SD [0-9] [0-9]' INPUT.TXT
輸出
SD12
SD11
SD54
而如果你想在腳本中使用它...那麼你可以將上面的代碼分配給一個變量/數組......這是根據你的需要。
** + 1 ** - 我忘了'grep -o'。好的建議,儘管根據OP的問題,我懷疑可以包括:'grep -o'X [0-9] [0-9] $'input.txt' – ghoti 2012-07-18 13:25:25
- 1. 從字符串中提取模式?
- 2. 提取從字符串匹配模式
- 3. 從字符串中提取
- 4. 正則表達式從字符串中提取子字符串
- 5. 從字符串中提取特定的字符串模式(swift 2)
- 6. Lua - 使用模式提取字符串
- 7. NSString提取模式子字符串
- 8. PHP提取字符串後模式
- 9. 從字符串中提取字符
- 10. 啓發式(模糊)從字符串中提取日期?
- 11. 從字符串中提取多種類型的模式
- 12. R - 使用gregexpr從字符串中提取多個模式
- 13. 試圖從字符串中提取重複模式在PHP/javascript
- 14. Makefile:從完整路徑字符串中提取模式
- 15. Bash:從字符串變量的中間提取模式?
- 16. 如何從字符串中提取預定義的模式?
- 17. 如何從多行字符串中提取多個模式
- 18. 從UTF-8格式字符串中提取雙字節字符/子字符串
- 19. 從大字符串提取字符串oracle正則表達式
- 20. 從字符串中提取子串
- 21. java中的模式匹配:從字符串文字中提取數字
- 22. 從字符串中提取數字
- 23. 從字符串中提取數字
- 24. Oracle:從字符串中提取數字
- 25. 從字符串中提取2個字
- 26. Rapidminer從字符串中提取數字
- 27. 從字符串中提取數字javascript
- 28. 從字符串提取
- 29. 提取值從字符串
- 30. 提取從字符串
[你有什麼試過](http://mattgemmell.com/2008/12/08/what-have-you-tried/)?告訴我們什麼壞了,我們會告訴你如何解決它。 – ghoti 2012-07-18 01:23:12
學習sed和正則表達式。 – 2012-07-18 01:26:39