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


143

是这样的:

cat "Some text here." > myfile.txt

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

Some text here.

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

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

Answers:


184

那是什么echo

echo "Some text here." > myfile.txt

13
奖金:echo "Some text here." >> myfile.txt文件末尾
Jim Aho

6
如果需要在文本中使用双引号,请将整个内容用单引号引起来。这对echo '{"info1": "123456"}' > info.json
.json之类的代码

163

听起来您正在寻找“ 这里”文档

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

在Linux Kernel 2.6.32 centos 6上,我不得不省略>字符以获取预期的输出。
ecoe

4
>字符表示的默认值$PS2; 它们会自动显示,而不是要键入的。如果您为设置了不同的值$PS2,则会显示。
gbrener

46

这是另一种方式-

cat > outfile.txt
>Enter text
>to save press ctrl-d

10

我使用以下代码将原始文本写入文件,以更新我的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

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

此代码保存为文件(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

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


8
cat > filename.txt

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

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

cat filename.txt

.txt不是强制性的,供您参考。


7

对于文本文件:

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

对于PHP文件:

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

5

您也可以这样做:

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

我相信有很多使用方法。


4

使用环境变量编写多行文本echo

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




1

您的问题的解决方案是:

回声“一些文本在这里”> filename.txt

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.