如何将命令的输出附加到文本文件的末尾?
当前回答
使用>>操作符将文本附加到文件中。
其他回答
使用>> file_to_append_to命令追加文件。
例如echo "Hello" >> testFile.txt
注意:如果你只使用一个>,你会覆盖文件的内容。为了确保这种情况不会发生,你可以在你的.bashrc中添加set -o noclobber。
这确保了如果您不小心在现有文件中键入命令> file_to_append_to,它将提醒您该文件已经存在。示例错误信息:文件存在:testFile.txt
因此,当您使用>时,它只允许您创建一个新文件,而不能覆盖现有文件。
当指向文件输出时,使用>>而不是>:
your_command >> file_to_append_to
如果file_to_append_to不存在,则创建该文件。
例子:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
我经常把两者混淆。最好通过它们的输出来记住:
>表示覆盖
$ touch someFile.txt
$ echo ">" > someFile.txt
$ cat someFile.txt
>
$ echo ">" > someFile.txt
$ cat someFile.txt
>
>>表示追加
$ echo ">" > someFile.txt
$ cat someFile.txt
>
$ echo ">" >> someFile.txt
$ cat someFile.txt
>>
对于整个问题:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
这将在o.txt中追加720行(30*24),之后将根据当前日期重命名文件。
每小时用cron运行上面的程序,或者
while :
do
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
sleep 3600
done
使用>>操作符将文本附加到文件中。