[英]Finding particular character in a line in bash
有沒有辦法在bash中使用正則表達式從一行文本中提取特定部分。
例如
8495 pts/1 S 0:10 /opt/sbin/proc -q 10 -p /opt/etc/plugin/ -c /opt/etc/ -f 200000 -s 10000 -b 3276
如何從上面提取q參數10 ? 我需要q參數后面的數字
px aux | sed -n 's/.*-q\s\([0-9]\+\).*/\1/p'
天真的解決方案正則表達式將是.*-q ([^ ]*) .*
。 所以,像sed 's/.*-q ([^ ]*) .*/\\1/'
應該可以解決問題。
如果該行存儲在變量$line
:
val=$(
this_token=false
for word in $line; do
$this_token && { echo $word; break; }
[[ $word = "-q" ]] && this_token=true
done
)
echo $val
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.