Можно ли использовать команду linux cat для записи текста в файл?

Это что-то вроде этого:

cat "Some text here." > myfile.txt

Возможный? Такой, что содержание myfile.txt теперь будет перезаписано:

Some text here.

Это не работает для меня, но и не выдает никаких ошибок.

Особенно заинтересован в catрешение (не vim/vi/emacs и т. д.). Все примеры онлайн-шоу cat используется в сочетании с вводом файлов, а не необработанным текстом...

14 ответов

Решение

Это то что echo делает:

echo "Some text here." > myfile.txt

Похоже, вы ищете здесь документ

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

Вот еще один способ -

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

Для текстового файла:

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

Для файла PHP:

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

Я использую следующий код для записи необработанного текста в файлы, чтобы обновить настройки 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

Это добавит ваш текст в конец файла, не удаляя другие данные, которые уже есть в файле.

cat > filename.txt

введите текст до EOF для сохранения текста используйте: Ctrl+ D

если вы хотите прочитать этот.txt файл, используйте

cat filename.txt

и одна вещь.txt не является обязательной, для вашей справки.

Напишите многострочный текст с переменными окружения, используя echo :

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

Вы тоже можете сделать это так:

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

Я считаю, что есть много способов его использовать.

Другой способ записать текст в файл с помощью cat будет выглядеть примерно так:

cat >file.txt <<< Write something here

Решение вашей проблемы:

echo "Некоторый текст идет сюда" > filename.txt

Но вы можете использовать команду cat, если вы хотите перенаправить вывод файла в какой-либо другой файл или если вы хотите добавить вывод файла в другой файл:

cat filename> newfile - Перенаправить вывод имени файла в новый файл

cat filename >> newfile - добавить вывод имени файла в newfile

Просто эхом с кошкой

Например

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

cat может также использоваться после | записать в файл, т.е. канал передает поток данных

Поскольку никто не ответил на исходный вопрос. Да.catможет использоваться для записи текста в файл без документа.

      cat - >file.txt
This is the world's worst
multiline text editor.
^d

Для моего Jenkins на MacOS 11.4

      {
   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 синтаксис для вывода многострочного текста в файл.

Использованная литература:

Другие вопросы по тегам