ファイルにテキストを書き込むために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ファイルの最後に追加する
ジム・アホ

6
テキストで二重引用符を使用する必要がある場合は、全体を一重引用符で囲みます。これは.jsonなどに便利です。例echo '{"info1": "123456"}' > info.json
bkd '22

164

ヒアドキュメントを探しているようですね

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

Linux Kernel 2.6.32 centos 6では、>期待どおりの出力を得るために文字を省略する必要がありました。
ecoe

4
>文字は、デフォルト値を表します$PS2。これらは自動的に表示され、入力するためのものではありません。の値が異なる場合は$PS2、代わりに表示されます。
gbrener

46

ここに別の方法があります-

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

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

これにより、上記のスクリプトで言及した2つのファイルに「パフォーマンス」というテキストが書き込まれます。この例では、ファイル内の古いデータを上書きします。

このコードはファイル(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 <<< docker inspect image` `
Prasanth Ganesan

2

cat|ファイルに書き込むためにaに続いて使用することもできます。つまり、パイプフィードはデータのストリームをcatします。


1

あなたの問題の解決策は:

echo "ここにいくつかのテキストが入ります"> filename.txt

ただし、ファイルの出力を他のファイルにリダイレクトしたい場合、またはファイルの出力を別のファイルに追加したい場合は、catコマンドを使用できます。

cat filename> newfile-ファイル名の出力をnewfileにリダイレクトする

cat filename >> newfile-filenameの出力をnewfileに追加するには

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.