Перейти к содержимому

добавить до конца без строки

1

Когда я пытаюсь добавить в конец файла, он создает новую строку. Теперь я попытался исправить это с помощью echo -n, но это действительно работает.

Так что я пытаюсь Я пытаюсь получить следующий результат:

Hello This Is A Test 

Но когда я добавляю текст с эхо с

echo -n "Test2" >> file.txt 

Происходит следующее:

Hello This Is A Test Test2 

Но то, что я хочу, это:

Hello This Is A Test Test2 

Как я могу это сделать? Я пробовал sed, echo и printf, но ни один из них не дает правильного результата

878 просмотров
Kev30 спросил 8 лет назад
K 8

1 ответ

1
Принятый ответ

С помощью sed:

sed '$s/$/ Test2/' file 

или же

truncate -s-1 file echo -n " Test2" >> file 

Выход:

Привет это Является  Тест Тест2 

Спасибо, опция sed работает, за исключением того, что показывает вывод в консоли. Он помещает текст в файл. Это нормально?

Kev30 · 8 лет назад · 0

Если вы хотите редактировать свой файл "на месте" с помощью GNU sed, добавьте опцию -i: sed -i '$ s / $ / Test2 /' file

Cyrus · 8 лет назад · 0

Я добавил sed -i '$ s / $ / Test2 /' tmp.txt, но теперь я получаю пустой файл

Kev30 · 8 лет назад · 0

Вы используете ** GNU ** sed?

Cyrus · 8 лет назад · 0

Я не совсем уверен, что такое GNU (извините, я все еще учусь!) Если вы имеете в виду ОС, то я использую Centos 7.

Kev30 · 8 лет назад · 0

у вас есть пустой файл, потому что вы, вероятно, сделали это в один момент: sed '...' tmp.txt> tmp.txt - если вы сделаете это, оболочка обрежет файл * перед * запуском sed.

glenn jackman · 8 лет назад · 1

CentOS 7 использует GNU sed 4.2.2 (проверьте sed --version | head -n 1). Я проверил это с RHEL7 и GNU sed 4.2.2.

Cyrus · 8 лет назад · 0

Большое спасибо! Все работает так, как я хотел, чтобы это работало!

Kev30 · 8 лет назад · 0
Cyrus ответил 8 лет назад
C 3 741