linux cat命令可以用于将文本写入文件吗?

时间:2013-06-14 19:10:23

标签: linux cat

是这样的:

cat "Some text here." > myfile.txt

可能?这样myfile.txt的内容现在将被覆盖为:

Some text here.

这对我不起作用,但也不会引起任何错误。

特别感兴趣的是基于cat的解决方案(不是vim / vi / emacs等)。所有在线示例都显示cat与文件输入结合使用,而非原始文本...

11 个答案:

答案 0 :(得分:145)

听起来你正在寻找Here document

cat > outfile.txt <<EOF
>some text
>to save
>EOF

答案 1 :(得分:143)

这就是echo的作用:

echo "Some text here." > myfile.txt

答案 2 :(得分:9)

我使用以下代码将原始文本写入文件,以更新我的CPU设置。希望这会有所帮助! 脚本:

#!/bin/sh

cat > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor <<EOF
performance
EOF

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF
performance
EOF

这会将文本“performance”写入上面脚本中提到的两个文件。此示例覆盖文件中的旧数据。

此代码保存为文件(cpu_update.sh)并使其可执行运行:

chmod +x cpu_update.sh

之后,您可以使用以下命令运行脚本:

./cpu_update.sh

如果您不想覆盖文件中的旧数据,请退出

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

cat >> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

这会将您的文本附加到文件的末尾,而不会删除文件中已有的其他数据。

答案 3 :(得分:7)

cat > filename.txt

输入文字 直到EOF 保存文本使用:ctrl + d

如果你想阅读.txt文件,请使用

cat filename.txt

并且一件事.txt不是强制性的,它可供您参考。

答案 4 :(得分:4)

你也可以这样做:

user@host: $ cat<<EOF > file.txt
$ > 1 line
$ > other line
$ > n line
$ > EOF
user@host: $ _

我相信有很多方法可以使用它。

答案 5 :(得分:2)

cat也可以在|之后用于写入文件,即管道输入cat数据流

答案 6 :(得分:2)

使用echo编写包含环境变量的多行文字:

echo -e "
Home Directory: $HOME \n
hello world 1 \n
hello world 2 \n
line n... \n
" > file.txt 

答案 7 :(得分:2)

只用cat进行管道回声

例如

echo write something to file.txt | cat > file.txt

答案 8 :(得分:2)

使用cat将文本写入文件的另一种方式是

cat >file.txt <<< Write something here

答案 9 :(得分:2)

对于文本文件:

cat > output.txt <<EOF
some text
some lines
EOF

对于PHP文件:

cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP

答案 10 :(得分:1)

您的问题的解决方案是:

  

回显“一些文本到此处”> filename.txt

但是如果要将文件的输出重定向到其他文件,或者要将文件的输出追加到另一个文件,可以使用cat命令:

cat文件名> newfile-要将文件名的输出重定向到newfile

cat文件名>> newfile-将文件名的输出附加到newfile