gpt4 book ai didi

linux - 替换文件中的模式,除了其中的一行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:27 25 4
gpt4 key购买 nike

我正在寻找一种解决方案来替换文件中除其中一行之外的一种模式。

例如:区域文件:

> cat /var/named/test.com.db
; cPanel first:11.11.0-BETA_16994 (update_time):1468656855 Cpanel::ZoneFile::VERSION:1.3 hostname:server.test.com latest:11.56.0.13
; Zone file for test.com
$TTL 14400
test.com. 86400 IN SOA ns1.test.com. cpanel.test.com. (
2016071602 ;Serial Number
14400 ;refresh
7200 ;retry
2419200 ;expire
43200 )

test.com. 14400 IN A 192.168.1.100

localhost 14400 IN A 127.0.0.1

test.com. 14400 IN MX 0 test.com.

mail 14400 IN CNAME test.com.
www 14400 IN CNAME test.com.
ftp 14400 IN CNAME test.com.
webdisk 14400 IN A 192.168.1.100
cpcalendars 14400 IN A 192.168.1.100
test.com. IN TXT "v=spf1 +a +mx +ip4:192.168.1.100 ~all"

我想用 192.168.1.101 替换其中的所有当前 IP 地址 192.168.1.100 除了“spf”记录行。

如何做到这一点?

最佳答案

sed '/spf/! s/192\.168\.1\.100/192.168.1.101/'

在不匹配 /spf/ 的行上执行请求的替换。当然,反斜杠会阻止 . 匹配任何字符。如果您的 IP 地址可能出现多次,您可以在末尾添加 g。如果您认为这是一个真正的问题,您可能会担心匹配 9192.168.1.1001(也就是说,如果您认为 IP 地址可能显示为非 IP 地址的子字符串) .

关于linux - 替换文件中的模式,除了其中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38692320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com