Can linux cat command be used for writing text to file?

LinuxCat

Linux Problem Overview


Is something like this:

cat "Some text here." > myfile.txt

Possible? Such that the contents of myfile.txt would now be overwritten to:

Some text here.

This doesn't work for me, but also doesn't throw any errors.

Specifically interested in a cat-based solution (not vim/vi/emacs, etc.). All examples online show cat used in conjunction with file inputs, not raw text...

Linux Solutions


Solution 1 - Linux

That's what echo does:

echo "Some text here." > myfile.txt

Solution 2 - Linux

Sounds like you're looking for a Here document

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

Solution 3 - Linux

Here's another way -

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

Solution 4 - Linux

For text file:

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

For PHP file:

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

Solution 5 - Linux

I use the following code to write raw text to files, to update my CPU-settings. Hope this helps out! Script:

#!/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

This writes the text "performance" to the two files mentioned in the script above. This example overwrite old data in files.

This code is saved as a file (cpu_update.sh) and to make it executable run:

chmod +x cpu_update.sh

After that, you can run the script with:

./cpu_update.sh

IF you do not want to overwrite the old data in the file, switch out

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

with

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

This will append your text to the end of the file without removing what other data already is in the file.

Solution 6 - Linux

cat > filename.txt

enter the text until EOF for save the text use : ctrl+d

if you want to read that .txt file use

cat filename.txt

and one thing .txt is not mandatory, its for your reference.

Solution 7 - Linux

You can do it like this too:

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

I believe there is a lot of ways to use it.

Solution 8 - Linux

Write multi-line text with environment variables using echo:

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

Solution 9 - Linux

Another way to write text to file using cat would be something like this

cat >file.txt <<< Write something here

Solution 10 - Linux

The Solution to your problem is :

> echo " Some Text Goes Here " > filename.txt

But you can use cat command if you want to redirect the output of a file to some other file or if you want to append the output of a file to another file :

cat filename > newfile -- To redirect output of filename to newfile

cat filename >> newfile -- To append the output of filename to newfile

Solution 11 - Linux

simply pipeline echo with cat

For example

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

Solution 12 - Linux

cat can also be used following a | to write to a file, i.e. pipe feeds cat a stream of data

Solution 13 - Linux

For my Jenkins on MacOS 11.4

{
   echo 'line 1' $var1
   echo 'line 2'
   echo 'result' $var5

} > ${destination_file}

I had tried many times by cat syntax, ex: cat > ${dest_file} <<EOF ... EOF, and got error syntax error: unexpected end of file. So, I use echo syntax to output multi-lines text to a file.

References:

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionIAmYourFajaView Question on Stackoverflow
Solution 1 - LinuxCarl NorumView Answer on Stackoverflow
Solution 2 - LinuxgbrenerView Answer on Stackoverflow
Solution 3 - Linuxstolen_leavesView Answer on Stackoverflow
Solution 4 - LinuxLe KhiemView Answer on Stackoverflow
Solution 5 - LinuxArahkunView Answer on Stackoverflow
Solution 6 - Linuxuser5260939View Answer on Stackoverflow
Solution 7 - LinuxJuanToroMartyView Answer on Stackoverflow
Solution 8 - LinuxnsantanaView Answer on Stackoverflow
Solution 9 - LinuxmpountouView Answer on Stackoverflow
Solution 10 - LinuxVipul SharmaView Answer on Stackoverflow
Solution 11 - LinuxmpountouView Answer on Stackoverflow
Solution 12 - LinuxLeahcimView Answer on Stackoverflow
Solution 13 - LinuxAechoLiuView Answer on Stackoverflow