2011-06-01 87 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

因此,當您使用>時,它只會允許您創建新文件,而不會覆蓋現有文件。

相關問題