Bash
如何從欄位分隔符“:”列印到行尾?
如何從欄位分隔符“:”列印到行尾
例子:
echo " llap_java_opts : -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts" llap_java_opts : -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts
預期輸出:
-XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts
我會用
cut -d: -f2-
這個:echo " llap_java_opts : -XX:+AlwaysPreTouch {% if java_version > 7 %}-XX:+UseG1GC -XX:TLABSize=8m -XX:+ResizeTLAB -XX:+UseNUMA -XX:+AggressiveOpts" | cut -d: -f2-
通過它
sed 's/^[^:]*: *//'
此
sed
替換將刪除從行首到並包括第一個:
空格和之後的所有空格的所有內容。如果您在 shell 變數中有字元串,
$a
那麼printf -- '-%s\n' "${a#*-}"
這使用參數擴展
${parameter#word}
來刪除直到並包括第一個的所有內容-
。破折號由 再次插入printf
。在大多數現代 shell 中執行時,它不使用任何外部實用程序。