如何将输出附加到文本文件的末尾

如何将命令输出附加到文本文件的末尾? bash


#1楼

我建议您作两件事: app

  1. 在Shell脚本中使用>>将内容附加到特定文件。 文件名能够是固定的,也能够使用某些模式。
  2. 设置每小时的cronjob来触发Shell脚本

#2楼

例如,您的文件包含:
spa

1.  mangesh@001:~$ cat output.txt
    1
    2
    EOF

若是您想在文件末尾附加->请记住'text'>>'filename'之间的空格 code

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

#3楼

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

例如, echo "Hello" >> testFile.txt it

注意:若是仅使用一个> ,则将彻底覆盖文件的内容。 为了确保永远不会发生,您能够在.bashrc添加set -o noclobberio

这样能够确保,若是您不当心在现有文件中键入command > file_to_append_to ,它将提醒您该文件已存在。 错误消息样本: file exists: testFile.txt test

所以,当您使用> ,它将仅容许您建立一个新文件,而不会覆盖现有文件。 file


#4楼

append文件,请使用>>

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

overwrite文件,请使用>

echo "hello tom" > read.txt cat read.txt

那么输出是

hello tom


#5楼

我会使用printf而不是echo,由于它更可靠而且能够正确处理格式,例如换行\\n

此示例产生的输出相似于先前示例中的echo:

printf "hello world"  >> read.txt   
cat read.txt
hello world

可是,若是在此示例中将printf替换为echo,则echo会将\\ n视为字符串,所以忽略了意图

printf "hello\nworld"  >> read.txt   
cat read.txt
hello
world