如何在Linux中通过shell脚本自动将数据写入文本文件?

我打开了文件。但是,我不知道如何写入数据。


当前回答

简单的回答是:

echo "some data for the file" >> fileName

但是,echo不能以理想的方式处理行尾字符。所以,如果你要追加多行,用printf:

printf "some data for the file\nAnd a new line" >> fileName

>>和>操作符对于重定向命令输出非常有用,它们与其他多个bash命令一起使用。

其他回答

移动我的评论作为一个答案,由@lycono要求

如果你需要用root权限来做这件事,这样做:

sudo sh -c 'echo "some data for the file" >> fileName'
#!/bin/sh

FILE="/path/to/file"

/bin/cat <<EOM >$FILE
text1
text2 # This comment will be inside of the file.
The keyword EOM can be any text, but it must start the line and be alone.
 EOM # This will be also inside of the file, see the space in front of EOM.
EOM # No comments and spaces around here, or it will not work.
text4 
EOM

我喜欢这个答案:

cat > FILE.txt <<EOF

info code info 
...
EOF

但建议cat >> file .txt << EOF,如果你只是想在文件末尾添加一些东西,而不清除已经存在的东西

是这样的:

cat >> FILE.txt <<EOF

info code info 
...
EOF

这种方法是有效的,也是最好的

cat > (filename) <<EOF
Text1...
Text2...
EOF

基本上,文本将搜索关键字“EOF”,直到它终止写入/追加文件

你可以将命令的输出重定向到一个文件:

$ cat file > copy_file

或者附加到它

$ cat file >> copy_file

如果你想直接写入命令是echo 'text'

$ echo 'Hello World' > file