2017-01-22 2 views
0

Я пытаюсь изучить Unix и как использовать терминал. Я нахожусь на Macsed, чтобы заменить слова в файле

Открываю терминал, я иду в папку. Внутри находится файл fruit.txt. В этом файле есть только слова груша, яблоко

Я хочу, чтобы заменить слово грушу и положить манго в файле fruit.txt

sed 's/pear/mango/' fruit.txt 

терминал дает мне:

mango, apple 

Но я открываю файл, и ничего не изменилось. Что мне не хватает?

+1

Посмотрите на вариант sed -i: 'man sed' – Cyrus

ответ

0

sed является редактором потока . Это означает, что он считывает данные, меняет их, и отправляет результат на вывод. Он не автоматически заменяет содержимое файла .

sed -i или sed --in-place будет заменять файл так, как вы хотите.

В качестве альтернативы, вы можете сделать что-то вроде этого:

sed fruit.txt > newfruit.txt 

и выход будет идти в новый файл. Это безопаснее; если вы допустили ошибку , у вас все еще есть исходный файл.

+0

sed -i 's/pear/mango /' fruit.txt, который дает мне sed: 1:" fruit.txt ": неверный код com f – segon

+0

Я также попробовал sed -i 's/pear/mango /' fruit.txt> newfruit.txt с тем же результатом – segon

+0

Какая версия 'sed' у вас есть? 'sed --version'. –

Смежные вопросы