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

Это примерно так:

cat "Some text here." > myfile.txt

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

Some text here.

У меня это не работает, но и ошибок не вызывает.

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


person IAmYourFaja    schedule 14.06.2013    source источник


Ответы (12)


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

echo "Some text here." > myfile.txt
person Carl Norum    schedule 14.06.2013
comment
Бонус: echo "Some text here." >> myfile.txt в конец файла - person Jim Aho; 17.11.2018
comment
Если вам нужно использовать в тексте двойные кавычки, заключите все в одинарные кавычки. Это полезно для .json и подобных, например. echo '{"info1": "123456"}' > info.json - person bkd; 22.11.2018

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

cat > outfile.txt <<EOF
>some text
>to save
>EOF
person gbrener    schedule 14.06.2013
comment
В Linux Kernel 2.6.32 centos 6 мне пришлось опустить символы >, чтобы получить ожидаемый результат. - person ecoe; 04.06.2018
comment
Символы > представляют значение по умолчанию $PS2; они появляются автоматически и не предназначены для ввода. Если у вас другое значение для $PS2, оно будет отображаться вместо этого. - person gbrener; 05.06.2018

Вот еще способ -

cat > outfile.txt
>Enter text
>to save press ctrl-d
person stolen_leaves    schedule 02.05.2015

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

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

Для файла PHP:

cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP
person Le Khiem    schedule 16.07.2019

Я использую следующий код для записи необработанного текста в файлы, чтобы обновить настройки процессора. Надеюсь, это поможет! Сценарий:

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

Это записывает текст "performance" в два файла, упомянутых в приведенном выше сценарии. В этом примере старые данные перезаписываются в файлах.

Этот код сохраняется как файл (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

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

person Arahkun    schedule 12.02.2016

cat > filename.txt

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

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

cat filename.txt

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

person user5260939    schedule 24.08.2015

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

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

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

person JuanToroMarty    schedule 22.03.2018

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

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

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

cat >file.txt <<< Write something here
person mpountou    schedule 30.10.2018
comment
Эта команда действительно полезна, когда вы пытаетесь записать вывод команды в файл. Например, cat > docker-inspect.txt <<< docker inspect image` - person Prasanth Ganesan; 11.11.2019

просто конвейерное эхо с кошкой

Например

echo write something to file.txt | cat > file.txt
person mpountou    schedule 24.10.2018

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

person Leahcim    schedule 03.11.2015

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

echo "Some Text Goes Here"> filename.txt

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

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

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

person Vipul Sharma    schedule 31.10.2018