aio*_*obe 599
使用>>
而不是>
在将输出定向到文件时:
your_command >> file_to_append_to
Run Code Online (Sandbox Code Playgroud)
如果file_to_append_to
不存在,将创建它.
例:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
Run Code Online (Sandbox Code Playgroud)
yoc*_*com 78
到append
文件使用 >>
Run Code Online (Sandbox Code Playgroud)echo "hello world" >> read.txt cat read.txt echo "hello siva" >> read.txt cat read.txt
那么输出应该是
Run Code Online (Sandbox Code Playgroud)hello world # from 1st echo command hello world # from 2nd echo command hello siva
到overwrite
文件使用 >
Run Code Online (Sandbox Code Playgroud)echo "hello tom" > read.txt cat read.txt
那么输出就是
hello tom
wal*_*lta 73
您可以使用>>运算符.这会将命令中的数据附加到文本文件的末尾.
要测试此尝试运行:
echo "Hi this is a test" >> textfile.txt
Run Code Online (Sandbox Code Playgroud)
这样做几次然后运行:
cat textfile.txt
Run Code Online (Sandbox Code Playgroud)
您将看到您的文本已多次附加到textfile.txt文件中.
cra*_*aft 30
使用command >> file_to_append_to
附加到文件中.
例如 echo "Hello" >> testFile.txt
注意:如果您只使用一个,>
您将完全覆盖该文件的内容.为了确保不会发生这种情况,您可以添加set -o noclobber
到您的.bashrc
.
这可确保如果您不小心键入command > file_to_append_to
现有文件,它将提醒您该文件已存在.示例错误消息:file exists: testFile.txt
因此,当您使用>
它时,只允许您创建新文件,而不是覆盖现有文件.
jm6*_*666 14
对于整个问题:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
Run Code Online (Sandbox Code Playgroud)
这会将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
Run Code Online (Sandbox Code Playgroud)
Sau*_*ahu 11
我经常把两者混淆。最好通过他们的输出记住:
$ touch someFile.txt
$ echo ">" > someFile.txt
$ cat someFile.txt
>
$ echo ">" > someFile.txt
$ cat someFile.txt
>
Run Code Online (Sandbox Code Playgroud)
$ echo ">" > someFile.txt
$ cat someFile.txt
>
$ echo ">" >> someFile.txt
$ cat someFile.txt
>>
Run Code Online (Sandbox Code Playgroud)
vic*_*rtv 10
将tee与选项-a(--append)一起使用可以使您一次附加到多个文件,也可以使用sudo(在附加到受保护的文件时非常有用)。除此之外,如果您还需要使用除bash之外的其他shell,这很有趣,因为并非所有shell都支持>和>>运算符。
echo "hello world" | sudo tee -a output.txt
Run Code Online (Sandbox Code Playgroud)
这个线程对tee有很好的答案
我将使用printf代替echo,因为它更可靠并且可以\n
正确处理诸如换行之类的格式。
本示例产生的输出类似于先前示例中的echo:
printf "hello world" >> read.txt
cat read.txt
hello world
Run Code Online (Sandbox Code Playgroud)
但是,如果在此示例中将printf替换为echo,则echo会将\ n视为字符串,因此忽略了意图
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
Run Code Online (Sandbox Code Playgroud)
例如,您的文件包含:
1. mangesh@001:~$ cat output.txt
1
2
EOF
Run Code Online (Sandbox Code Playgroud)
如果你想在文件末尾附加,那么---->记住'text'>>'filename'之间的空格
2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
Run Code Online (Sandbox Code Playgroud)
并覆盖文件的内容:
3. mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write
Run Code Online (Sandbox Code Playgroud)
在Linux中,您可以使用cat
命令将文件内容附加到另一个文件
cat fileName_1.txt >> fileName_2.txt
在上一个命令中,您将附加fileName_1.txt
to的内容fileName_2.txt
。
在Windows操作系统中,您可以使用type
命令
type fileName_1.txt >> fileName_2.txt
请看这个 gif 图片:
归档时间: |
|
查看次数: |
495121 次 |
最近记录: |