Bash: добавьте строку в конец файла без разрыва строки
Как добавить строку в конец файла без разрыва строки?
например, если я использую >> будет добавить в конец файла строку:
cat list.txt
yourText1
root@host-37:/# echo yourText2 >> list.txt
root@host-37:/# cat list.txt
yourText1
yourText2
Я хотел бы добавить yourText2 сразу после yourText1
root@host-37:/# cat list.txt
yourText1yourText2
3 ответов
sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt
если sed реализация поддерживает -Я, вы можете использовать:
sed -i.bck '$s/$/yourText2/' list.txt
со вторым решением у вас тоже будет резервная копия (с первым вам нужно будет сделать это вручную).
кроме того:
ex -sc 's/$/yourText2/|w|q' list.txt
или
perl -i.bck -pe's/$/yourText2/ if eof' list.txt
вы можете использовать параметр-n echo. Вот так:
$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC
EDIT: Ага, у вас уже был файл, содержащий строку и новую строку. Ну, я все равно оставлю это здесь, может кому-нибудь нужно.
просто использовать printf
вместо этого, поскольку он не печатает новую строку по умолчанию:
printf "final line" >> file
тест
давайте создадим файл, а затем добавим дополнительную строку без новой строки. Примечание Я использую cat -vet
чтобы увидеть новые линии.
$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end