簡體   English   中英

在bash中找到一行中的特定字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM