Как добавить строку текста в середину файла с помощью bash?

Я пытаюсь добавить строку текста в середину текстового файла в сценарии bash. В частности, я пытаюсь добавить сервер имен в свой файл /etc/resolv.conf. В его нынешнем виде resolv.conf выглядит так:

# Generated by NetworkManager
domain dhcp.example.com
search dhcp.example.com
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3

Моя цель - добавить nameserver 127.0.0.1 над всеми другими строками сервера имен, но под любым текстом над ним. В конце концов, я хочу, чтобы мой файл resolve.conf выглядел так:

# Generated by NetworkManager
domain dhcp.example.com
search dhcp.example.com
nameserver 127.0.0.1
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3

Как это возможно с помощью сценария bash? Это что-то вроде sed или awk? Или творческий greping для воссоздания файла будет моим лучшим ходом?

41
задан PHLAK 18 July 2011 в 20:49
поделиться