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


143

Щось таке:

cat "Some text here." > myfile.txt

Можливо? Такий, що вміст myfile.txtтепер буде замінено на:

Some text here.

Це не працює для мене, але також не призводить до помилок.

Конкретно зацікавлений у catрішенні на базі (не vim / vi / emacs тощо). Усі приклади онлайн-шоу, які catвикористовуються разом із введеннями файлів, а не необробленим текстом ...

Відповіді:


184

Ось що echoробить:

echo "Some text here." > myfile.txt

13
Бонус: echo "Some text here." >> myfile.txtдодати до кінця файл
Jim Aho

6
Якщо вам потрібно використовувати подвійні лапки у своєму тексті, охоплюйте всю річ єдиними цитатами. Це корисно для .json і подібних, наприкладecho '{"info1": "123456"}' > info.json
bkd 22

164

Здається, ви шукаєте документ Here

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

У Linux Linux Kernel 2.6.32 centos 6 мені довелося опустити >символи, щоб отримати очікуваний вихід.
ecoe

4
Ці >символи представляють значення за замовчуванням $PS2; вони відображаються автоматично, і не призначені для введення. Якщо ви маєте інше значення для $PS2, воно з’явиться натомість.
gbrener


10

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

Це додасть ваш текст до кінця файла, не видаляючи інші дані, які вже є у файлі.


8
cat > filename.txt

введіть текст до EOF для збереження використання тексту: ctrl + d

якщо ви хочете прочитати це .txt використання файлу

cat filename.txt

і одне .txt не є обов’язковим, його для довідки.


7

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

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 


3

Ще один спосіб записати текст у файл за допомогою кота - це щось подібне

cat >file.txt <<< Write something here

Ця команда дуже корисна, коли ви намагаєтесь записати висновок команди у файл. Наприклад, cat > docker-inspect.txt <<< докер оглядає зображення ``
Ганесан

2

catможе також використовуватися після |запису до файлу, тобто труба подає коту потік даних


1

Рішення вашої проблеми:

echo "Деякі тексти йдуть сюди"> ім'я файлу.txt

Але ви можете використовувати команду cat, якщо ви хочете перенаправити вихід файлу на якийсь інший файл або якщо ви хочете додати висновок файлу до іншого файлу:

cat filename> newfile - для перенаправлення виводу імені файлу на новий файл

cat filename >> newfile - для додавання виводу імені файлу до нового файлу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.