Как добавить текст в файл с помощью однострочной команды без использования перенаправления io?
Добавить текст в файл из командной строки без использования io redirection
Ответ 1
Если вы не против использования sed, тогда
$ cat test this is line 1 $ sed -i '$ a\this is line 2 without redirection' test $ cat test this is line 1 this is line 2 without redirection
Поскольку документация может быть немного длинной, некоторые объяснения:
-  
-iозначает преобразование inplace, поэтому все изменения будут происходить в указанном вами файле. -  
$используется для указания последней строки -  
aозначает добавление строки после -  
\просто используется как разделитель 
Ответ 2
Если вы просто хотите что-то подделать вручную, ответ sed будет работать для вас. Если вместо этого текст находится в файле (скажем file1.txt и file2.txt):
Использование Perl:
 perl -e 'open(OUT, ">>", "outfile.txt"); print OUT while (<>);' file*.txt
N.B. в то время как >> может выглядеть как указание перенаправления, это просто режим открытия файла, в данном случае "append".
Ответ 3
Вы можете использовать Vim в режиме Ex:
ex -sc 'a|BRAVO' -cx file
-  
aдобавить текст -  
xсохранить и закрыть 
Ответ 4
 Вы можете использовать --append tee:
cat file01.txt | tee --append bothFiles.txt 
cat file02.txt | tee --append bothFiles.txt 
 Или короче,
cat file01.txt file02.txt | tee --append bothFiles.txt 
  Я предполагаю, что запрос на отсутствие перенаправления (>>) исходит из необходимости использовать это в xargs или аналогичном. Поэтому, если это не считается, вы можете отключить вывод с помощью >/dev/null.