2011-06-01 1824 views

回答

316

使用>>而不是>输出保存时文件:

your_command >> file_to_append_to 

如果file_to_append_to不存在,它将被创建。

例子:

$ echo "hello" > file 
$ echo "world" >> file 
$ cat file 
hello 
world 
+0

问题是'echo'从字符串中删除换行符。你如何向文件附加一个包含换行符的字符串? – 2017-12-15 21:25:22

+0

@TimothySwan,我相信-e选项。 – 2018-03-05 07:44:57

14

使用>>运营商将文本追加到一个文件中。

53

您可以使用>>操作符。这会将命令中的数据附加到文本文件的末尾。

为了检验这一试运行:

echo "Hi this is a test" >> textfile.txt 

执行此操作几次,然后运行:

cat textfile.txt 

您会看到您的文字已经被附加多次到TextFile.txt的文件。

8

整个问题:

cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt 

这将追加720线(30 * 24)到o.txt和之后将重命名基于当前日期的文件。

运行上面每隔一小时的cron或者

while : 
do 
    cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt 
    sleep 3600 
done 
3

我建议你做两件事情:

  1. 使用>>在你的shell脚本追加内容特定的文件。文件名可以是固定的或使用某种模式。
  2. 设置一个小时的cronjob触发shell脚本
4

例如您的文件包含:

1. [email protected]:~$ cat output.txt 
    1 
    2 
    EOF 

如果u想在文件末尾追加然后---->记得之间的空间'文本' >> '文件名'

2. [email protected]:~$ echo somthing to append >> output.txt|cat output.txt 
    1 
    2 
    EOF 
    somthing to append 

而且覆盖文件的内容:

3. man[email protected]:~$ echo 'somthing new to write' > output.tx|cat output.tx 
    somthing new to write 
9

使用command >> file_to_append_to附加到文件。

例如echo "Hello" >> testFile.txt

注意:如果你只使用一个单一的>你将完全覆盖该文件的内容。为确保不会发生,您可以将set -o noclobber添加到您的.bashrc

这可确保如果您不小心键入command > file_to_append_to到现有文件,它会提醒您文件已存在。示例错误信息:file exists: testFile.txt

因此,当您使用>时,它只会允许您创建新文件,而不会覆盖现有文件。

相关问题