![](/img/trans.png)
[英]To replace a immediate text after pattern match in Linux shell using 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 的“整個條目”。
如何突出顯示 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 來實現它。
假設這兩個塊在同一行,並且你想為背景而不是文本添加顏色,你可以試試這個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.