簡體   English   中英

在一行中搜索一個字符串,然后用另一個字符串替換整行

[英]Search for a string in a line and replace the entire line with another string

我有一個名為testing在目前/home/hiperbolt具有線,說:

nameserver 127.89.87.3

我想要一段代碼來查找以nameserver開頭的行,並將整個行替換為

nameserver 8.8.8.8

我的代碼當前發生的情況是,它僅替換了名稱服務器部分,因此變為:

nameserver 8.8.8.8 127.89.87.3

代替

nameserver 8.8.8.8

如果需要,您可以不使用正則表達式。

with open('/home/hiperbolt', 'r') as f:
    lines = []
    for line in f:
        if line.startswith('nameserver'):
            lines.append('nameserver 8.8.8.8')
        else:
            lines.append(line)

with open('/home/hiperbolt', 'w') as f:
    f.write('\n'.join(lines))

您可以僅在文件的文本內容上使用re.sub() ,然后將替換后的文本寫回到文件中。

In [30]: filedata
Out[30]: 'nameserver 127.89.87.3\nsearch example.com\n'

In [31]: re.sub(r'nameserver\s+.*', 'nameserver 8.8.8.8', filedata)
Out[31]: 'nameserver 8.8.8.8\nsearch example.com\n'

暫無
暫無

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

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