Я бачив, як команда кішки з'являється в деяких матеріалах в Інтернеті, і мені було цікаво, що робити cat
і для чого це стосується того, хто просто виконує прості речі з командного рядка.
Я бачив, як команда кішки з'являється в деяких матеріалах в Інтернеті, і мені було цікаво, що робити cat
і для чого це стосується того, хто просто виконує прості речі з командного рядка.
Відповіді:
cat
Основна мета - зведення файлів для отримання котів . cat file1 file2 ...
покаже вміст file
, file2
а інші - один за одним, як би вміст знаходився в одному файлі. Дивіться довідкову сторінку :
NAME
cat - concatenate and print files
Він призначений для використання там, де:
цільова команда не може читати з файлів, і вам потрібно передати їй кілька файлів. Приклад - tr
утиліта. Зазвичай, з одним файлом ви зробите:
tr < file
Але з декількома файлами переадресацію використовувати не можна, тому потрібно зробити:
cat file1 file2 ... | tr
wc
, що друкується підрахунок для кожного файлу, а також імена файлів, де ви, можливо, хотіли б просто загального без назви файла.Пам'ятайте , що більшість команд ви стикаєтеся ( grep
, sed
, awk
, sort
, ...) може читати файли прекрасно.
Якщо ви хочете переглянути вміст файлу, скористайтеся пейджером - less
і more
вони одночасно можуть представити файли для перегляду, і вони набагато зручніші для використання.
cat
є однією з найбільш часто використовуваних команд в операційних системах, схожих на Unix. Він має три пов'язані функції щодо текстових файлів:
загальний синтаксис кота:
cat [options] [filenames] [-] [filenames]
Найбільш поширене використання кота - це читання вмісту файлів, а кішка часто є найбільш зручною програмою для цієї мети. Все, що потрібно для відкриття текстового файлу для перегляду на моніторі дисплея, - це ввести слово cat, а потім пробіл та назву файла, а потім натиснути клавішу ENTER. Наприклад, нижче буде відображено вміст файлу з назвою file1:
cat file1
Друга роль кота - конкатенація. (Це джерело цікавого імені кота.) На оригінальні файли немає ефекту.
Наприклад, наступна команда об'єднає копії вмісту трьох файлів file1, file2 та file3:
cat file1 file2 file3
Вміст кожного файлу відображатиметься на екрані монітора. Цей вихід може так само легко бути перенаправлений за допомогою оператора переадресації виводу на інший файл, наприклад file4, використовуючи наступне:
cat file1 file2 file3 > file4
Завдяки коментарю @muru : cat здатний створювати нові файли залежно від функції перенаправлення оболонки, а не від себе
Для невеликих файлів це часто простіше, ніж використання редакторів vi, gedit або інших текстів. Це виконується шляхом введення кота з подальшим оператором переадресації виводу та іменем файла, який потрібно створити, а потім натисканням ENTERі, нарешті, одночасним натисканням клавіш Ctrl& d.
Наприклад, новий файл з назвою file1 можна створити, ввівши
cat > file1
потім натисніть ENTERі одночасно натисніть клавіші Ctrl& d.
PS1: Якщо файл з ім'ям file1 вже існує, він буде перезаписаний
PS2: ви можете додати до вийшов файл за допомогою >>
прикладу оператора додавання cat >> file1
Команда cat також може бути використана ( залежно від функції перенаправлення оболонки) для створення нового файлу та передачі до нього даних із наявного файлу. Приклад: зробіть копію файлу oldfile.txt
:
cat oldfile.txt > newfile.txt
Список літератури:
cat
не створює цих файлів - оболонка, коли ви використовували переадресацію. Можливо, ви так само добре зробили echo foo > file1
.
cat
те, що насправді робиться чимось іншим. Наприклад, виконання less file1 > file2
(або grep '.*' file1 > file
або awk 1 file1 > file2
або ...) має той же ефект. Діто для 4. Це просто зловживання.
> file
і давати такий же результат, але чи не можу я вважати, що це дійсно робити з кішкою ?!
cat
файл не створюється. Скажіть, що cat
створюється або копіюється файл, це просто помилка.
З його допомогою можна показати вміст файлу. Наприклад: cat "my file.txt"
. Ви також можете зробити, man cat
щоб показати вам подробиці про те, для чого cat
можна використовувати.
Ось ще один спосіб створення файлів за допомогою перенаправлення оболонки (або трубопроводів) та cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
буде виводити наступні рядки, поки рядок EOF
не зустрінеться знову. Тоді >
( >>
) перенаправить вихідний файл у файл foo.sh
. Крім того, якщо вам потрібно створити файл як корінь, ви можете передавати висновок команді tee
( tee -a
), виконаній командою sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
), якщо він успішно створений ( &&
).$
) слід уникати (з \
) у межах виводу cat
.
< <(cat file[12]) tr
а також<<<$(cat file[12]) tr
обидва цілком коректні способи перенаправлення кількох файлів. Звичайно, іcat
для цього вам потрібно , тільки цей трубопровід - не єдиний спосіб.