sed - для простых замен в отдельных строках, s/old/new/
, , то есть все .Во всем остальном вы должны использовать awk, так как все эти сумасшедшие конструкции sed делают больше, чем это устарело в середине 1980-х годов, когда был изобретен awk.
Трудно сказать без краткого, тестируемого образца ввода и ожидаемого результата, ноучитывая этот пример ввода (из https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf):
$ cat file
# Default LLT value for this interface in milliseconds. The value used in case
# no value provided during session setup. Default is 50 msec.
# fst_llt is in 1..4294967 range (due to spec limitation, see 10.32.2.2
# Transitioning between states).
#fst_llt=100
# Example blocks:
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
ssid="simple"
psk="very secret passphrase"
priority=5
}
# Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}
# Only WPA-PSK is used. Any valid cipher combination is accepted.
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
То, о чем вы, похоже, просите, будет так просто:
$ awk -v RS= -v ORS='\n\n' '/ssid="example"/' file
# Only WPA-PSK is used. Any valid cipher combination is accepted.
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
, а в противном случае будет просто отрицатьсятест для /ssid="example"/
:
$ awk -v RS= -v ORS='\n\n' '!/ssid="example"/' file
# Default LLT value for this interface in milliseconds. The value used in case
# no value provided during session setup. Default is 50 msec.
# fst_llt is in 1..4294967 range (due to spec limitation, see 10.32.2.2
# Transitioning between states).
#fst_llt=100
# Example blocks:
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
ssid="simple"
psk="very secret passphrase"
priority=5
}
# Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}
Если это не то, что вы хотите, отредактируйте ваш вопрос, чтобы предоставить пример ввода и ожидаемый результат, который проясняет ваши требования, и мы можем проверить, чтобы мы могли предоставить другой, но все еще ясныйи тривиальное решение awk.