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

737
Kev30

Когда я пытаюсь добавить в конец файла, он создает новую строку. Теперь я попытался исправить это с помощью 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, но ни один из них не дает правильного результата

1

1 ответ на вопрос

1
Cyrus

С помощью sed:

sed '$s/$/ Test2/' file 

или же

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

Выход:

Привет это Является  Тест Тест2 
Спасибо, опция sed работает, за исключением того, что показывает вывод в консоли. Он помещает текст в файл. Это нормально? Kev30 5 лет назад 0
Если вы хотите редактировать свой файл "на месте" с помощью GNU sed, добавьте опцию `-i`:` sed -i '$ s / $ / Test2 /' file` Cyrus 5 лет назад 0
Я добавил `` sed -i '$ s / $ / Test2 /' tmp.txt``, но теперь я получаю пустой файл Kev30 5 лет назад 0
Вы используете ** GNU ** sed? Cyrus 5 лет назад 0
Я не совсем уверен, что такое GNU (извините, я все еще учусь!) Если вы имеете в виду ОС, то я использую Centos 7. Kev30 5 лет назад 0
у вас есть пустой файл, потому что вы, вероятно, сделали это в один момент: `sed '...' tmp.txt> tmp.txt` - если вы сделаете это, оболочка обрежет файл * перед * запуском sed. glenn jackman 5 лет назад 1
CentOS 7 использует GNU sed 4.2.2 (проверьте `sed --version | head -n 1`). Я проверил это с RHEL7 и GNU sed 4.2.2. Cyrus 5 лет назад 0
Большое спасибо! Все работает так, как я хотел, чтобы это работало! Kev30 5 лет назад 0

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