linux cat 命令可以用于将文本写入文件吗?
Posted
技术标签:
【中文标题】linux cat 命令可以用于将文本写入文件吗?【英文标题】:Can linux cat command be used for writing text to file? 【发布时间】:2013-06-11 12:38:14 【问题描述】:是这样的:
cat "Some text here." > myfile.txt
可能吗?这样myfile.txt
的内容现在将被覆盖为:
Some text here.
这对我不起作用,但也不会引发任何错误。
对基于cat
的解决方案(不是vim/vi/emacs 等)特别感兴趣。所有在线示例都显示 cat
与文件输入一起使用,而不是原始文本...
【问题讨论】:
【参考方案1】:对于我在 MacOS 11.4 上的 Jenkins
echo 'line 1' $var1
echo 'line 2'
echo 'result' $var5
> $destination_file
我用cat
语法尝试了很多次,例如:cat > $dest_file <<EOF ... EOF
,得到了错误syntax error: unexpected end of file
。因此,我使用echo
语法将多行文本输出到文件。
参考资料:
How to append multiple lines to a file github.com/koalaman/shellcheck/wiki/SC2129【讨论】:
【参考方案2】:对于文本文件:
cat > output.txt <<EOF
some text
some lines
EOF
对于 php 文件:
cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP
【讨论】:
【参考方案3】:您的问题的解决方案是:
echo " Some Text Goes Here " > filename.txt
但是如果你想将一个文件的输出重定向到另一个文件,或者你想将一个文件的输出附加到另一个文件,你可以使用 cat 命令:
cat filename > newfile -- 将文件名的输出重定向到新文件
cat 文件名 >> newfile -- 将文件名的输出附加到新文件
【讨论】:
【参考方案4】:另一种使用 cat 将文本写入文件的方法是这样的
cat >file.txt <<< Write something here
【讨论】:
当您尝试将命令的输出写入文件时,此命令非常有用。例如cat > docker-inspect.txt <<<
docker 检查图像` `【参考方案5】:
简单地用 cat 管道回显
例如
echo write something to file.txt | cat > file.txt
【讨论】:
【参考方案6】:使用echo
编写带有环境变量的多行文本:
echo -e "
Home Directory: $HOME \n
hello world 1 \n
hello world 2 \n
line n... \n
" > file.txt
【讨论】:
【参考方案7】:你也可以这样做:
user@host: $ cat<<EOF > file.txt
$ > 1 line
$ > other line
$ > n line
$ > EOF
user@host: $ _
我相信有很多方法可以使用它。
【讨论】:
【参考方案8】:我使用以下代码将原始文本写入文件,以更新我的 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
这会将您的文本附加到文件的末尾,而不会删除文件中已有的其他数据。
【讨论】:
【参考方案9】:cat
也可以在|
之后使用来写入文件,即管道向 cat 提供数据流
【讨论】:
【参考方案10】:cat > filename.txt
输入文字 直到 EOF 保存文本使用:ctrl+d
如果您想阅读该 .txt 文件,请使用
cat filename.txt
还有一点 .txt 不是强制性的,供您参考。
【讨论】:
【参考方案11】:这是另一种方式-
cat > outfile.txt
>Enter text
>to save press ctrl-d
【讨论】:
【参考方案12】:听起来您正在寻找Here document
cat > outfile.txt <<EOF
>some text
>to save
>EOF
【讨论】:
在 linux Kernel 2.6.32 centos 6 上,我必须省略>
字符才能获得预期的输出。
>
字符代表$PS2
的默认值;它们会自动显示,而不是用来输入的。如果 $PS2
的值不同,则会显示该值。【参考方案13】:
echo
就是这样做的:
echo "Some text here." > myfile.txt
【讨论】:
奖励:echo "Some text here." >> myfile.txt
附加到文件末尾
如果您需要在文本中使用双引号,请将整个内容用单引号括起来。这对 .json 之类的东西很有用,例如echo '"info1": "123456"' > info.json
以上是关于linux cat 命令可以用于将文本写入文件吗?的主要内容,如果未能解决你的问题,请参考以下文章