как добавить строку, если слово заканчивается конкретной строкой

мы хотим обновить следующий файл, в случае, если MACHINE_NAME оканчивается на «.localdomain», затем необходимо добавить строку linux в начале слова

каждый MACHINE_NAME имеет одинарные скобки “……”

пример файла перед изменением

['server_primary01.localdomain', 'server_primary02.localdomain', 'server_primary03.localdomain'] EDIT_HOSTS.append( {'HOST' : 'Client0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'Client{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'Client0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'Client{0}.localdomain'.format(count+1)} ) 

пример после изменения

  ['linuxserver_primary01.localdomain', 'linuxserver_primary02.localdomain', 'linuxserver_primary03.localdomain'] EDIT_HOSTS.append( {'HOST' : 'linuxClient0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient{0}.localdomain'.format(count+1)} ) 

sed решение:

 sed -E "s/[^[:space:]']+\.localdomain/linux&/g" file 

Пример вывода:

 ['linuxserver_primary01.localdomain', 'linuxserver_primary02.localdomain', 'linuxserver_primary03.localdomain'] EDIT_HOSTS.append( {'HOST' : 'linuxClient0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient0{0}.localdomain'.format(count+1)} ) EDIT_HOSTS.append( {'HOST' : 'linuxClient{0}.localdomain'.format(count+1)} )