Lệnh linux linux cat có thể được sử dụng để viết văn bản vào tập tin không?


143

Là một cái gì đó như thế này:

cat "Some text here." > myfile.txt

Khả thi? Vì vậy, nội dung của myfile.txtbây giờ sẽ được ghi đè lên:

Some text here.

Điều này không làm việc cho tôi, nhưng cũng không ném bất kỳ lỗi nào.

Cụ thể quan tâm đến một catgiải pháp dựa trên (không phải vim / vi / emacs, v.v.). Tất cả các ví dụ hiển thị trực tuyến catđược sử dụng cùng với đầu vào tệp, không phải văn bản thô ...

Câu trả lời:


184

Đó là những gì echo:

echo "Some text here." > myfile.txt

13
Phần thưởng: echo "Some text here." >> myfile.txtđể thêm vào cuối o tập tin
Jim Aho

6
Nếu bạn cần sử dụng dấu ngoặc kép trong văn bản của mình, hãy bao gồm toàn bộ nội dung trong dấu ngoặc đơn. Đây là hữu ích cho .json và thích, ví dụecho '{"info1": "123456"}' > info.json
bkd

164

Âm thanh như bạn đang tìm kiếm một tài liệu ở đây

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

Trên linux Kernel 2.6.32 centos 6 tôi đã phải bỏ qua các >ký tự để có được đầu ra mong đợi.
ecoe

4
Các >ký tự đại diện cho giá trị mặc định của $PS2; chúng tự động xuất hiện và không có nghĩa là phải gõ. Nếu bạn có một giá trị khác $PS2, thay vào đó, nó sẽ hiển thị.
gbrener


10

Tôi sử dụng đoạn mã sau để ghi văn bản thô vào tệp, để cập nhật cài đặt CPU của mình. Hy vọng điều này sẽ giúp ra! Kịch bản:

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

Điều này ghi văn bản "hiệu suất" vào hai tệp được đề cập trong đoạn script trên. Ví dụ này ghi đè dữ liệu cũ trong các tệp.

Mã này được lưu dưới dạng tệp (cpu_update.sh) và để chạy mã thực thi:

chmod +x cpu_update.sh

Sau đó, bạn có thể chạy tập lệnh với:

./cpu_update.sh

NẾU bạn không muốn ghi đè lên dữ liệu cũ trong tệp, hãy tắt

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

với

cat >> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

Điều này sẽ nối văn bản của bạn vào cuối tệp mà không xóa những dữ liệu khác đã có trong tệp.


8
cat > filename.txt

nhập văn bản cho đến khi EOF để lưu văn bản sử dụng: ctrl + d

nếu bạn muốn đọc tệp .txt đó, hãy sử dụng

cat filename.txt

và một điều .txt không bắt buộc, đó là để bạn tham khảo.


7

Đối với tệp văn bản:

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

Đối với tệp PHP:

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

5

Bạn cũng có thể làm như thế này:

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

Tôi tin rằng có rất nhiều cách để sử dụng nó.


4

Viết văn bản nhiều dòng với các biến môi trường bằng cách sử dụng echo:

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

3

chỉ đơn giản là tiếng vang đường ống với con mèo

Ví dụ

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

3

Một cách khác để viết văn bản vào tập tin bằng cách sử dụng con mèo sẽ giống như thế này

cat >file.txt <<< Write something here

Lệnh này thực sự hữu ích khi bạn đang cố gắng viết đầu ra của lệnh vào một tệp. Ví dụ cat > docker-inspect.txt <<< docker kiểm tra hình ảnh ``
Prasanth Ganesan

2

catcũng có thể được sử dụng theo a |để ghi vào tệp, tức là đường ống cung cấp cho mèo một luồng dữ liệu


1

Giải pháp cho vấn đề của bạn là:

echo "Một số văn bản đi ở đây"> filename.txt

Nhưng bạn có thể sử dụng lệnh cat nếu bạn muốn chuyển hướng đầu ra của tệp sang một tệp khác hoặc nếu bạn muốn nối đầu ra của tệp sang tệp khác:

tên tệp mèo> newfile - Để chuyển hướng đầu ra của tên tệp sang newfile

tên tệp mèo >> newfile - Để nối đầu ra của tên tệp vào newfile

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.