Sed заменяют определенную строку в файле

Я создаю сценарий удара для своей виртуальной машины, и я хотел бы знать, как заменить определенную строку в этом документе:

[base]

## uncomment and set autologin username to enable autologin
# autologin=dgod

## uncomment and set timeout to enable timeout autologin,

## the value should >=5

# timeout=10

## default session or desktop used when no systemwide config

# session=/usr/bin/startlxde

эта строка:

# autologin=dgod

Я хочу измениться на это

autologin=ubuntu

Я попробовал "мишенью" и "sed", но не мог заставить его работать. Это должно быть очень легко для кого-то, кто работает со сценариями удара чаще, чем я.

4
задан 15 October 2016 в 02:05

2 ответа

Это просто. Используйте эти s команда в sed, чтобы искать и заменить.

sed 's/# autologin=dgod/autologin=ubuntu/' /path/to/file

, Если Вы видите то, что Вы хотите, добавьте -i для изменения файла на месте

sed -i 's/# autologin=dgod/autologin=ubuntu/' /path/to/file
12
ответ дан 23 November 2019 в 11:41

Я обнаружил, что наиболее эффективный способ сделать это - использовать синтаксис изменения для установки точного значения, которое вы хотите, если вы явно не пытаетесь включить двустороннее переключение. Вы можете использовать это, чтобы изменить, а также раскомментировать строку независимо от того, как она прокомментирована, с помощью # или // или .

sed 's% searchTerm =% c searchTerm = желаемое значение%' targetFile.txt

2
ответ дан 19 March 2020 в 03:14

Другие вопросы по тегам:

Похожие вопросы: