如何将命令的输出附加到文本文件的末尾?
当前回答
使用>>操作符将文本附加到文件中。
其他回答
例如,你的文件包含:
1. mangesh@001:~$ cat output.txt
1
2
EOF
如果你想在文件末尾追加,那么---->记住'text' >> 'filename'之间的空格
2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
和覆盖文件的内容:
3. mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write
当指向文件输出时,使用>>而不是>:
your_command >> file_to_append_to
如果file_to_append_to不存在,则创建该文件。
例子:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
使用>>操作符将文本附加到文件中。
我会使用printf而不是echo,因为它更可靠,并且正确地处理诸如new line \n之类的格式。
这个例子产生一个类似于前面例子中的echo的输出:
printf "hello world" >> read.txt
cat read.txt
hello world
然而,如果你在这个例子中用echo替换printf, echo会把\n当作一个字符串,从而忽略意图
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
对于整个问题:
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