Это известная ошибка: # 1353951. Он будет исправлен с последней версией сервера эволюционных данных (все еще в «предлагаемом»).
Вы можете использовать способность cat для чтения из stdin в сочетании с возможностью читать несколько файлов для достижения этого.
~$ cat file.txt
Hello from file.txt
~$ echo "My final line" | cat file.txt -
Hello from file.txt
My final line
Вы также можете добавить строку, как таковую:
~$ echo "My final line" | cat - file.txt
My final line
Hello from file.txt
Обратите внимание, что вы не ограничены одной строкой. cat будет читать от stdin, пока не достигнет EOF. Вы можете передать вывод из curl, например, для добавления или добавления к выходу cat.
~$ curl -s http://perdu.com | cat file.txt -
Hello from file.txt
<html><head><title>Vous Etes Perdu ?</title></head><body><h1>Perdu sur l'Internet ?</h1><h2>Pas de panique, on va vous aider</h2><strong><pre> * <----- vous êtes ici</pre></strong></body></html>
Вы можете использовать cat с возможность чтения из stdin в сочетании с его способность считывать несколько файлов, чтобы добиться этого.
~$ cat file.txt
Hello from file.txt
~$ echo "My final line" | cat file.txt -
Hello from file.txt
My final line
Вы также можете добавлять строки, такие как:
~$ echo "My final line" | cat - file.txt
My final line
Hello from file.txt
обратите внимание, что Вы не ограничены одной строкой. cat будет читать из stdin, пока не достигнет конца файла. Вы можете пройти выход из curl, например, в начале или в конце вывода cat.
~$ curl -s http://perdu.com | cat file.txt -
Hello from file.txt
<html><head><title>Vous Etes Perdu ?</title></head><body><h1>Perdu sur l'Internet ?</h1><h2>Pas de panique, on va vous aider</h2><strong><pre> * <----- vous êtes ici</pre></strong></body></html>
Вы можете использовать способность cat для чтения из stdin в сочетании с возможностью читать несколько файлов для достижения этого.
~$ cat file.txt
Hello from file.txt
~$ echo "My final line" | cat file.txt -
Hello from file.txt
My final line
Вы также можете добавить строку, как таковую:
~$ echo "My final line" | cat - file.txt
My final line
Hello from file.txt
Обратите внимание, что вы не ограничены одной строкой. cat будет читать от stdin, пока не достигнет EOF. Вы можете передать вывод из curl, например, для добавления или добавления к выходу cat.
~$ curl -s http://perdu.com | cat file.txt -
Hello from file.txt
<html><head><title>Vous Etes Perdu ?</title></head><body><h1>Perdu sur l'Internet ?</h1><h2>Pas de panique, on va vous aider</h2><strong><pre> * <----- vous êtes ici</pre></strong></body></html>
sed -e '$aMy final line' file.txt
Из man sed опция -e
-e script, --expression=script
add the script to the commands to be executed
$ соответствует последней строке, а a добавляет строку.
Если вы хотите для постоянного добавления строки к файлу используйте -i
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
Изменение команды на
sed -i -e '$aMy final line' file.txt
Чтобы добавить строку к файлу, вы можете просто использовать оператор перенаправления оболочки append >> (файл будет open(2) -ed с флагом O_APPEND):
echo 'My final line' >>file.txt
Теперь, если вы хотите просто просмотреть содержимое файла с добавленной конечной строкой, я бы использовал cat с двумя аргументами:
Во-первых, ваш файл, очевидно, давайте file.txt Второй аргумент будет строкой по вашему выбору и передать строку как имя файла (поскольку cat касается только файлов), вы можете использовать подстановку процессов, <(), которая вернет дескриптор файла ([ f11].Объединяя их вместе:
cat file.txt <(echo 'My final line')
Если вы хотите, чтобы вывод был выгружен, если less является вашим любимым пейджером:
less file.txt <(echo 'My final line')
Это уже было разъяснено в комментариях к вопросу, но добавив его снова в качестве ответа здесь.
Команда, отмеченная в вопросе
(cat file.txt ; echo "My final line") | other command
, работает так, как это ожидаемый - все выходные данные из подоболочки, образованные скобками, передаются во вторую команду.
Если файл не заканчивается новой строкой, эхо-строка добавляется к последней строке - это общий со всеми другими решениями здесь и может быть разрешен путем добавления еще одного (пустого) эха раньше.
Чтобы добавить строку к файлу, вы можете просто использовать оператор перенаправления оболочки append >> (файл будет open(2) -ed с флагом O_APPEND):
echo 'My final line' >>file.txt
Теперь, если вы хотите просто просмотреть содержимое файла с добавленной конечной строкой, я бы использовал cat с двумя аргументами:
Во-первых, ваш файл, очевидно, давайте file.txt Второй аргумент будет строкой по вашему выбору и передать строку как имя файла (поскольку cat касается только файлов), вы можете использовать подстановку процессов, <(), которая вернет дескриптор файла (/proc/self/fd/<fd_number>).Объединяя их вместе:
cat file.txt <(echo 'My final line')
Если вы хотите, чтобы вывод был выгружен, если less является вашим любимым пейджером:
less file.txt <(echo 'My final line')
sed -e '$aMy final line' file.txt
Из man sed опция -e
-e script, --expression=script
add the script to the commands to be executed
$ соответствует последней строке, а a добавляет строку.
Если вы хотите для постоянного добавления строки к файлу используйте -i
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
Изменение команды на
sed -i -e '$aMy final line' file.txt
Это уже было разъяснено в комментариях к вопросу, но добавив его снова в качестве ответа здесь.
Команда, отмеченная в вопросе
(cat file.txt ; echo "My final line") | other command
, работает так, как это ожидаемый - все выходные данные из подоболочки, образованные скобками, передаются во вторую команду.
Если файл не заканчивается новой строкой, эхо-строка добавляется к последней строке - это общий со всеми другими решениями здесь и может быть разрешен путем добавления еще одного (пустого) эха раньше.
для добавления строки в файл, вы можете просто использовать оболочку добавить оператор перенаправления, >> (файл будет open(2) с O_APPEND флаг):
echo 'My final line' >>file.txt
теперь, если вы хотите просто просмотреть содержимое файла с последняя строка добавляется, я хотел бы использовать cat с двумя аргументами:
во-первых, ваш файл, очевидно, скажем, нажать [F8] второй аргумент будет строку вашего выбора, и, чтобы передать строку в качестве имени файла (как на [F9] имеет дело только с файлами) можно использовать процесс замещения, [F10] для того, что бы вернуть файловый дескриптор (на[F11].поставив их вместе:
cat file.txt <(echo 'My final line')
если вы хотите, чтобы на выходе быть разбита на страницы, предполагая, less ваш любимый пейджер:
less file.txt <(echo 'My final line')
sed -e '$aMy final line' file.txt
Из man sed опция -e
-e script, --expression=script
add the script to the commands to be executed
$ соответствует последней строке, а a добавляет строку.
Если вы хотите для постоянного добавления строки к файлу используйте -i
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
Изменение команды на
sed -i -e '$aMy final line' file.txt
Это уже было разъяснено в комментариях к вопросу, но добавив его снова в качестве ответа здесь.
Команда, отмеченная в вопросе
(cat file.txt ; echo "My final line") | other command
, работает так, как это ожидаемый - все выходные данные из подоболочки, образованные скобками, передаются во вторую команду.
Если файл не заканчивается новой строкой, эхо-строка добавляется к последней строке - это общий со всеми другими решениями здесь и может быть разрешен путем добавления еще одного (пустого) эха раньше.