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


149

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

cat "Some text here." > myfile.txt

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

Some text here.

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

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

Ответы:


194

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

echo "Some text here." > myfile.txt

15
Бонус: echo "Some text here." >> myfile.txtдобавить в конец файла
Джим Ахо

6
Если вам нужно использовать в тексте двойные кавычки, заключите все в одинарные кавычки. Это полезно для .json и подобных, напримерecho '{"info1": "123456"}' > info.json
bkd

173

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

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

В Linux Kernel 2.6.32 centos 6 мне пришлось опустить >символы, чтобы получить ожидаемый результат.
ecoe

4
Эти >символы представляют значение по умолчанию $PS2; они появляются автоматически и не предназначены для ввода. Если у вас другое значение $PS2, оно будет отображаться вместо этого.
gbrener 05


10

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

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

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


9
cat > filename.txt

введите текст до EOF, чтобы сохранить текст: ctrl + d

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

cat filename.txt

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


8

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

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

Для файла PHP:

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

5

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

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

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


4

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

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

4

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

cat >file.txt <<< Write something here

Эта команда действительно полезна, когда вы пытаетесь записать вывод команды в файл. Например, cat > docker-inspect.txt <<< docker inspect image ''
Ганесан

3

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

Например

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

2

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


1

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

echo "Some Text Goes Here"> filename.txt

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.