我正在使用以下命令在 kubernetes pod 日志中搜索模式“variable=value”(例如,variable=10 或 variable=500):
Kubectl logs -f | grep “variable=”
我的問題是是否可以修改上面的命令以回傳變數值大于某個閾值的日志,例如 for threshold=300, variable=301,variable=302將被過濾,但variable=299會被過濾掉
我知道我可以為此開發一個小程式,但我希望直接在命令列中快速解決方案,而無需撰寫小程式。
uj5u.com熱心網友回復:
作為測驗,我創建了這個檔案:
Prompt> cat test.txt
var=2
var=22
var=222
blabla
首先,我過濾我們的變數賦值行:
Prompt> grep "var=" test.txt
var=2
var=22
var=222
然后,我通過兩種方式過濾值的條件:
Prompt> grep "var=" test.txt | awk -F '=' '{if ($2 > 25) print $1 "=" $2}'
var=222
Prompt> grep "var=" test.txt | awk -F '=' '{if ($2 < 25) print $1 "=" $2}'
var=2
var=22
uj5u.com熱心網友回復:
我會使用perl,在這里我從一個名為bash-pod. 過濾,只有帶有的行threshold=<integer-greater-than-80>存在。
kubectl logs -f bash-pod |perl -ne '/.*threshold=(\d ).*/m;print if $1> 80'
上面的代碼使用下面的 pod 進行了測驗:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: bash-pod
name: bash-pod
spec:
containers:
- image: bash
name: bash-pod
resources: {}
command: ['bash','-c','while true;do echo "threshold=$(( ( RANDOM % 100 ) 1 ))";sleep 1;done']
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
輸出:
kubectl logs -f bash-pod |perl -ne '/.*threshold=(\d ).*/m;print if $1> 80'
threshold=82
threshold=90
threshold=89
threshold=90
threshold=85
threshold=83
threshold=86
threshold=83
...
.....
uj5u.com熱心網友回復:
您沒有提供任何示例輸入,所以這是一個猜測,但這可能是您想要做的:
awk -F'=' '($1=="variable") && ($2>300)' file
如果這不是您所需要的,那么請編輯您的問題以包含一個最小的、可重現的示例,其中包含簡潔、可測驗的樣本輸入、預期的輸出以及您自己解決問題的嘗試,以便我們可以進一步為您提供幫助。請參閱 [ask] 并查看已被支持和回答的現有問題以獲取示例。
uj5u.com熱心網友回復:
這是一個靈活的解決方案,允許您指定您喜歡的引數,并且功能相同:
< test_filter_threshold.txt |
mawk 'NF*=(____=="<")!=((___~"."? ___:___\
)<= $(NF*=(!_<NF)*(__==$!_)))' FS== OFS== \
__="var" ___="1" ____=">="
var=2
var=22
var=222
___=4 ____='<'
var=2
___=200 ____='<'
var=2
var=22
___=200 ____='>='
var=222
___=200 ____= # "<" is strictly less than,
# all else def. to ">="
var=222
___='3.14159' ____='>=' # float point thresholds (TRHD) are valid
var=22
var=222
___= ____= # missing TRHD def. to all
var=2
var=22
var=222
___='abc' ____='>=' # invalid TRHD def. to non-zero positive
var=2
var=222
1 var=2
2 var=-22
3 var=222
4 blabla
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474188.html
標籤:重击 贝壳 Kubernetes Unix
下一篇:在終端的檔案中更改縮進的多行字串
