運行以下命令我得到 0271,有沒有辦法分別得到 0、27 和 1?
echo '! ibrav = 0, nat = 27, ntyp = 1' | sed -r 's/[^1-9]*//g'
uj5u.com熱心網友回復:
使用grep而不是sed. 該-o選項僅列印匹配的部分,并且每個匹配都在單獨的行上。
echo '! ibrav = 0, nat = 27, ntyp = 1' | grep -E -o '[0-9] '
輸出:
0
27
1
uj5u.com熱心網友回復:
我發現這種方法適用于 bash 和 make 環境。假設;
VAR='! ibrav = 0, nat = 27, ntyp = 1'
重擊:
echo $(VAR) | grep -Po '(nat = \d )')
制作:
$(eval NUM := $(shell echo $(VAR) | grep -Po '(nat = \d )'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414665.html
標籤:
下一篇:使用管道計算輸出中的行數
