Ioリダイレクトを使用せずに、1行のコマンドでファイルにテキストを追加するにはどうすればよいですか?
sed を使用してもかまわない場合は、
$ catテスト これは1行目です。 ]これは1行目です これはリダイレクトなしの2行目です
ドキュメントを読むのに少し時間がかかるかもしれないので、いくつかの説明:
-i
はインプレース変換を意味するため、指定したファイルですべての変更が発生します$
は最後の行を指定するために使用されますa
は、後に行を追加することを意味します\
は単に区切り文字として使用されます手で何かをタックしたいだけなら、sed
の回答が役に立ちます。代わりに、テキストがファイル内にある場合(たとえば、file1.txtおよびfile2.txt):
Perlの使用:
Perl -e 'open(OUT, ">>", "outfile.txt"); print OUT while (<>);' file*.txt
N.B. >>
はリダイレクトの指示のように見える場合がありますが、これは単なるファイルオープンモードであり、この場合は「追加」です。
ExモードでVimを使用できます。
ex -sc 'a|BRAVO' -cx file
a
テキストを追加
x
保存して閉じる
tee
の--append
機能を使用できます:
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
で出力をミュートできます。