Q
子由炭範圍
0
A
回答
0
下面有一個例子
echo "10.11.183.81,aaa_XXX150.csv,bbb_YYYY_20100807.csv" | grep -o ",[^_]*_"
那麼,上面的命令將在輸出中包含','和'_' 要排除此項,您可以使用
echo "10.11.183.81,aaa_XXX150.csv,bbb_YYYY_20100807.csv" | pcregrep -o "(?<=,).*?(?=_)"
正則表達式(?<=,).*?(?=_)
傳遞給pcregrep使用「回顧後」和由「pcregrep」
0
$ s="10.11.183.81,aaa_XXX150.csv,bbb_YYYY_20100807.csv"
$ echo $s|tr "_" "\n"|sed -n '/,/s/.*,//p'
aaa
bbb
0
支持正則表達式的「先行」技術。如果有什麼你要求的是發揮的重要作用純巴什解決方案,即你不希望調用外部程序,你可以嘗試這樣的事:
str=10.11.183.81,aaa_XXX150.csv,bbb_YYYY_20100807.csv
while [[ "$str" =~ "," ]]; do
str=${str#*,}
echo ${str%%_*}
done
輸出是:
aaa
bbb
只要字符串中至少有一個逗號,while循環就會執行。然後,第一行刪除字符串左邊的所有字符,直到第一個逗號(包括第一個逗號),第二行輸出字符串,排除從第一個下劃線到字符串末尾的所有內容。
請注意原始字符串($ str)被修改。
1
純擊:
string="10.11.183.81,aaa_XXX150.csv,bbb_YYYY_20100807.csv"
IFS=',' # separator for splitting
array=(${string#*,}) # split string after the first comma
array=(${array[@]%%_*}) # delete trailing '_*' for each element
echo -e "${array[@]}" # gives 'aaa bbb'
相關問題
- 1. 由於範圍
- 2. 將子範圍拆分成子範圍
- 3. 孩子範圍到家長範圍不同的孩子範圍
- 4. 選擇由範圍
- 5. 熊貓:由範圍
- 6. C++讀由焦炭
- 7. 正則表達式「空範圍,焦炭類錯誤」
- 8. 由於在範圍列表「
- 9. NServiceBus Autofac子範圍
- 10. 由has_and_belongs_to_many關係的子記錄過濾器/範圍
- 11. JavaScript的catch子句範圍
- 12. 子腳本超出範圍
- 13. 枚舉子範圍在ADA
- 14. 範圍子頭/尾爲空
- 15. 計算子網CIDR範圍
- 16. MIN的Excel範圍子集
- 17. 打印範圍子集合
- 18. 範圍在where子句
- 19. 十進制離子範圍?
- 20. 範圍崩潰的子串
- 21. Ionic2離子範圍不ngModel
- 22. 多個範圍的子集
- 23. 子域名localStorage的範圍
- 24. 子在VBA將範圍
- 25. Eratosthenes的篩子與範圍
- 26. 離子2範圍滑塊
- 27. Gnuplot範圍數字因子
- 28. 子串超出範圍
- 29. AngularJS元素的子範圍
- 30. Oracle範圍和子查詢
整潔:)不是我的解決方案更優雅,讓你值得+1。 – 2010-08-16 18:07:52