2015-05-05 2 views
1

Здравствуйте, я в настоящее время есть файл в этом формате:Как заменить строку с СЭД с/

This is a test file 

location = /home/files 

Мой вопрос, как я могу заменить эту строку location = /home/files с этим location = /home/documents/test_files?

+0

Является 'Это файл тестового файла в файле? Есть ли что-нибудь еще в файле. Вы пробовали что-нибудь для этого. На этом сайте большое количество вопросов о внесении изменений в файлы. –

+0

Да Это тестовый файл является частью файла, и в файле ничего нет. – NSPredator

ответ

3

Когда в исходной строке или заменяющей строке есть «/», мы используем «\» для выхода из «/». В качестве альтернативы вы можете использовать любой символ в качестве замены разделителя, например, "@"

$ cat sample.csv 
This is a test file 

location = /home/files 

$ sed '[email protected]/home/[email protected]/home/documents/[email protected]' sample.csv 
This is a test file 

location = /home/documents/test_files 
+0

Большое спасибо! – NSPredator

1

Просто выберите другой разделитель:

sed 's-location = /home/files-location = /home/documents/test_files-' test.txt 
sed 's~location = /home/files~location = /home/documents/test_files~' test.txt 

Или избежать /:

sed 's/location = \/home\/files/location = \/home\/documents\/test_files/' test.txt