如何将命令的输出附加到文本文件的末尾?
当前回答
使用tee和选项-a(——append)允许您一次追加到多个文件,也可以使用sudo(在追加到受保护的文件时非常有用)。除此之外,如果您需要使用bash之外的其他shell,这很有趣,因为并非所有shell都支持>和>>操作符
echo "hello world" | sudo tee -a output.txt
这个帖子有关于tee的很好的答案
其他回答
对于整个问题:
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
例如,你的文件包含:
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
您可以使用>>操作符。这将把命令中的数据附加到文本文件的末尾。
要测试这个,请运行:
echo "Hi this is a test" >> textfile.txt
这样做几次,然后运行:
cat textfile.txt
您将看到文本被多次追加到textfile.txt文件。
在Linux操作系统中,可以使用cat命令将文件内容追加到另一个文件
cat fileName_1.txt >> fileName_2.txt
在前面的命令中,您将把fileName_1.txt的内容追加到fileName_2.txt。
在Windows操作系统中可以使用type命令
type fileName_1.txt >> fileName_2.txt
请看这张gif图片:
要追加一个文件,请使用>>
echo "hello world" >> read.txt
cat read.txt
echo "hello siva" >> read.txt
cat read.txt
那么输出应该是
hello world # from 1st echo command
hello world # from 2nd echo command
hello siva
要覆盖文件,请使用>
echo "hello tom" > read.txt
cat read.txt
那么输出是
你好,汤姆