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