簡體   English   中英

在 Linux (bash) 中使用 SED 在匹配前后突出顯示匹配的模式和更多字符

[英]highlight matched pattern and a few more characters before and after the match using SED in Linux (bash)

我在一個文件中有兩組數據列,如下所示:

abc-pods-7c5576f85c-zl6g2         1/1     Running       0          5d11h             xyz-pods-fbc9fb4d9-547zd          1/1     Running       0          5d10h
abc-pods-5fb6fbcdbb-7v99v         1/1     Running       1          2d14h             xyz-pods-xc5576f85c-Xl6g2         0/1     Pending       0          5d11h
abc-pods-5fb6fbcdbb-n8hbn         0/1     Pending       2          5d10h             xyz-pods-xfb6fbcdbb-Xv99v         1/1     Running       1          2d14h
abc-pods-5fb6fbcdbb-qdtz6         1/1     Running       0          5d10h             xyz-pods-xfb6fbcdbb-X8hbn         1/1     Running       2          5d10h
abc-pods-5fb6fbcdbb-zn6pn         1/1     Running       2          5d10h             xyz-pods-xfb6fbcdbb-Xdtz6         1/1     Running       0          5d10h
def-pods-6cbf6b8f8f-2pq7t         1/1     Running       1          3d9h              xyz-pods-xfb6fbcdbb-Xn6pn         1/1     Running       2          5d10h
def-pods-6cbf6b8f8f-8zxfs         1/1     Running       0          27h               pqr-pods-xcbf6b8f8f-Xpq7t         1/1     Running       1          3d9h 
def-pods-6cbf6b8f8f-fr6kc         0/1     Terminating   0          112d29h           pqr-pods-xcbf6b8f8f-Xzxfs         0/1     Pending       0          27h  
def-pods-6cbf6b8f8f-gf7gn         1/1     Running       0          2d14h             pqr-pods-xcbf6b8f8f-Xr6kc         1/1     Running       0          29h  
def-pods-6cbf6b8f8f-hs6b7         0/1     Pending       0          10h               pqr-pods-xcbf6b8f8f-Xf7gn         1/1     Running       0          2d14h
def-pods-6cbf6b8f8f-mpmsk         1/1     Running       0          28h               pqr-pods-xcbf6b8f8f-Xs6b7         1/1     Running       0          10h  
def-pods-6cbf6b8f8f-tqplz         0/1     Terminating   0          29h               pqr-pods-xcbf6b8f8f-Xpmsk         1/1     Running       0          28h  
def-pods-6cbf6b8f8f-wk6pq         1/1     Running       0          27h               pqr-pods-xcbf6b8f8f-Xqplz         1/1     Running       0          29h  
jklmno-pods-df6885fd9-6vqhs       0/1     Terminating   0          510d10h           pqr-pods-xcbf6b8f8f-Xk6pq         1/1     Running       0          27h  
mno-pods-df6885fd9-7dcbv          1/1     Running       0          5d10h             abcjkl-pods-xf6885fd9-RvqIs       0/1     Terminating   0          5d10h
mno-pods-df6885fd9-7fh9q          1/1     Running       0          29h               jkl-pods-xf6885fd9-RdcIv          0/1     Pending       0          5d10h
mno-pods-df6885fd9-cch24          1/1     Running       1          5d10h             jkl-pods-0f6885fd9-RfhIq          1/1     Running       0          29h  
mno-pods-df6885fd9-fn7qr          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-RchI4          1/1     Running       1          5d10h
mno-pods-df6885fd9-k757b          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-Rn7Ir          1/1     Running       0          5d10h
mno-pods-df6885fd9-kxwdn          1/1     Running       0          5d9h              jkl-pods-0f6885fd9-R75Ib          1/1     Running       0          5d10h
mno-pods-df6885fd9-m9mq8          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-RxwIn          1/1     Running       0          5d9h 
mno-pods-df6885fd9-mnlxm          0/1     Pending       0          12h               jkl-pods-0f6885fd9-R9mI8          1/1     Running       0          5d10h
mno-pods-df6885fd9-r6h68          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-RnlIm          1/1     Running       0          12h  
mno-pods-df6885fd9-s8vxk          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-R6hI8          1/1     Running       0          5d10h
mno-pods-df6885fd9-splct          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-R8vIk          1/1     Running       0          5d10h
mno-pods-df6885fd9-xbhcl          1/1     Running       0          29h               jkl-pods-0f6885fd9-RplIt          0/1     Pending       0          5d10h
mno-pods-df6885fd9-zr7bv          1/1     Running       0          5d10h             jkl-pods-0f6885fd9-RbhIl          1/1     Running       0          29h  
jkl-pods-0f6885fd9-Rr7Iv          1/1     Running       0          5d10h             jkl-pods-0bc9fb4d9-R47Id          1/1     Running       0          5d10h

我想要的是:突出顯示(使用 SED)匹配 0/1 的“整個條目”。

我已經使用 SED 實現了以下目標:
圖 1

我想要實現的是:
圖 2

如何突出顯示 0/1 前后的 31 個字符
(0/1 包含在突出顯示中,如第二張圖片中所示)

我使用以下代碼突出顯示 0/1:

cat /home/McFly/myPods.log | sed -ue 's/\(0\/1\)/'`printf '\033[1;31m'`'\1'`printf '\033[0m'`'/g'

我知道這可以使用 GREP 來實現。
我需要使用 SED 來實現它。

輸出仍然存在一個小問題 | watch -n 1 --color ./myScript.sh給出: 圖 3

假設這兩個塊在同一行,並且你想為背景而不是文本添加顏色,你可以試試這個sed

$ sed -E s"~[a-z]+-[^/]*0/1([^0-9]*.){2}[^ ]*~$(tput setab 1)&$(tput sgr 0)~g" /home/McFly/myPods.log

相反,如果您打算像當前代碼那樣為文本而不是背景添加顏色,則將setab 1更改為setaf 1

$ sed -E s"~[a-z]+-[^/]*0/1([^0-9]*.){2}[^ ]*~$(tput setaf 1)&$(tput sgr 0)~g" /home/McFly/myPods.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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