Linux

sed + remove line with word match 並且僅當註釋出現在行首時

  • January 19, 2022

刪除帶有單詞匹配的行很容易

例如,當我們要刪除與單詞匹配的行時 -max.connections

sed '/max.connections/d' /home/conf.txt

但是如何刪除匹配行如下&僅以註釋開頭的行為

more  /home/conf.txt
#max.connections=438473
#   max.connections=438473
   # max.connections=438473
# max.connections=438473
max.connections=438473

注意 - 評論可以在開頭或空格/s

預期輸出範例

more  /home/conf.txt
max.connections=438473

藝術是製作一個正則表達式,它完全符合您的要求。在這種情況下,您要匹配以 a 開頭#、包含一些字元、然後是 的行max.connection。在正則表達式中,那將是

^                beginning of the line
#                The character '#'
.*               any character, may be repeated 0-infinity times
max.connections  This litteral text

或作為sed命令:

sed '/^#.*max.connections/d' /home/conf.txt

引用自:https://unix.stackexchange.com/questions/687008