Cat (Unix)
cат — файлларни кетма-кет ўқиб, уларни стандарт чиқаришга ёзадиган стандарт Уних ёрдам дастури ҳисобланади. Ном (cон) cат энате файллар (лотинча cатенаре, „занжирга“) функсиясидан олинган. У бир қатор операцион тизимларга кўчириллган
| Ҳақиқий муалиффлар | Кен Тҳомпсон, |
|---|---|
| Ишлаб чиқарувчилар | АТ&Т Белл Лабораториэс |
| Дастлабки ишлаб чиқарилиши | 3-ноябр, 1971-йил |
| Операцион тизим | Уних, Уних-лике, План 9, Инферно, РеаcтОС |
| Платформа | Кросс-платформа |
| Тип | Cомманд (буйруқ) |
| Лицензия | Cореутиллар: ГПЛв3+
РеаcтОС: ГПЛв2+ |
Тарихи
cат Уних нинг дастлабки версияларининг бир қисми эди, масалан, 1-версия ва битта файлни экранга нусхалаш учун пр, ПДП-7 ва Мултиcс ёрдам дастурини алмаштирди. Бу Кен Тҳомпсон ва Деннис Ритчиэ томонидан ёзилган кодлар жамланмаси эди. ГНУ cореутилс -да тўпланган cат версияси Торбжорн Гранлунд ва Ричард Сталлман томонидан ёзилган. РеаcтОС версияси Давид Wелч, Семён Новиков ва Ҳермес Белусcа томонидан яратилган[1].
Вақт ўтиши билан таc ва бат каби муқобил ёрдамчи дастурлар ҳам яратилиб, турли хил янги хусусиятларнинг пайдо бўлишига олиб келди[2][3].
Фойдаланилиши
Ягона Уних спецификацияси cат файлларни ўз аргументларида берилган кетма-кетликда ўқиш, уларнинг мазмунини бир хил кетма-кетликда стандарт чиқишга асосланган. Спецификация битта вариант байроғини қўллаб-қувватлашни талаб қилади, буферланмаган чиқиш учун у, яъни ҳар бир байт ўқилгандан кейин ёзилади. Баъзи операцион тизимлар, масалан, ГНУ Cоре Утилитиэс дан фойдаланадиганлар, буни сукут бўйича бажарадилар ва байроқни кўп ҳолатда эътиборсиз қолдирадилар[4].
Агар кириш файл номларидан бири битта чизиқча (-) сифатида белгиланган бўлса, у ҳолда cат кетма-кетликнинг ўша нуқтасида стандарт киритишдан қайта ўқийди. Ҳеч қандай файл белгиланмаган бўлса, cат фақат стандарт киришнигина ўқийди.
Буйруқнинг синтаксиси :
cат [оптионс] [филе_намес]
Вариантлар
Баъзи cат вариантларига мисол:[5]
- -б (ГНУ: --нумбер-нонбланк), бўш бўлмаган чиқиш чизиқларини рақамлаш
- -э -в деган маънони англатади, лекин қатор охири белгиларини $ сифатида кўрсатади (фақат ГНУ: -Э бир хил, лекин -в бундан мустасно)
- -н (ГНУ: --нумбер), барча чиқиш қаторларини рақамлаш
- -с (ГНУ: --сқуээзе-бланк), бир нечта қўшни бўш қаторларни сиқиб чиқариш
- -т -в деган маънони англатади, лекин ёрлиқларни ^И сифатида кўрсатади (ГНУ: -Т бир хил, лекин -в назарда тутилмайди)
- -у стдоут учун буферланмаган И/У дан фойдаланиш. ПОСИХ ушбу параметрсиз хатти-ҳаракатни аниқламайди.
- -в (ГНУ: --шоw-нонпринтинг), ёрлиқлар ва сатр охири белгиларидан ташқари, чоп этилмайдиган белгиларни кўрсатади
Фойдаланиш ҳолатлари
cат файлни кириш оқимида оддий матн ёки иккилик маълумотларни кутадиган дастурга ўтказиш учун ишлатилиши мумкин. cат бирлаштириш ва чиқаришда матн бўлмаган байтларни йўқ қилмайди. Шундай қилиб, унинг иккита асосий қўлланилиш усули матнли файллар ва маълум форматга мос келадиган иккилик файллар ҳисобланади.
Матнни бирлаштириш АСCИИ каби бир хил эски кодлашдан фойдаланган ҳолда яратилган матн файллари билан чекланган. cат байт тартиби белгисига эга бўлган Униcоде матн файлларини ёки турли матн кодлашларидан фойдаланиб ишланган файлларни бирлаштириш усулини таъминламайди.
Кўпгина тузилган иккилик маълумотлар тўпламлари учун натижада олинган бирлаштирилган файл ҳақиқий бўлмаслиги мумкин; масалан, файлда ноёб сарлавҳа ёки алтбилги бўлса, натижа уларни сохта равишда такрорлайди. Бироқ, баъзи мултимедиа рақамли контейнер форматлари учун натижада олинган файлгина амал қилинади ва шунинг учун cат файлларни қўшишнинг самарали воситасини тақдим этади. Видео оқимлари cат муаммосиз бирлаша оладиган файлларнинг муҳим намунаси бўлиши мумкин, масалан, МПЕГ дастур оқими (МПЕГ-1 ва МПЕГ-2) ва ДВ (Рақамли видео) форматлари, бу пакетларнинг нисбатан оддий оқимлари кабилардир.
Мисоллар
| Буйруқ | Тушунтириш |
|---|---|
| cат филе1.тхт | Файл таркибини кўрсатиш |
| cат филе1.тхт филе2.тхт | Икки матнли файлни бирлаштириш ва натижани терминалда кўрсатиш |
| cат филе1.тхт филе2.тхт > неwcомбинедфиле.тхт | Икки матнли файлни бирлаштириб, уларни янги файлга ёзиш |
| cат > неwфиле.тхт | неwфиле.тхт номли файл яратиш. Керакли киритишдан со'нг тугатиш учун CТРЛ+Д тугмаларини босилади. Матн неwфиле.тхт файлида бўлади. |
| cат -н филе1.тхт филе2.тхт > неwнумбередфиле.тхт | -н варианти билан cат нинг баъзи иловалар қаторларини ҳам рақамлаши мумкин |
| cат филе1.тхт > филе2.тхт | филе1.тхт таркибини филе2.тхт ичига нусхалаш |
| cат филе1.тхт >> филе2.тхт | филе1.тхт таркибини филе2.тхт файлига қўшиш |
| cат филе1.тхт филе2.тхт филе3.тхт | сорт > тест4 | Файлларни бирлаштириш, тўлиқ қаторларни тартиблаш ва натижани янги яратилган файлга ёзиш |
| cат филе1.тхт филе2.тхт | лесс | „лесс (камроқ)“ дастурини файл1 ва файл2 га киритилиши билан бирлаштириб ишга тушириш |
| cат филе1.тхт | грепп эхампле | филе1.тхт файлида „мисол“ сўзини ажратиб кўрсатиш |
| cомманд| cат | Тўғридан-тўғри ТТЙ га ёзишда „буйруқ“нинг махсус хатти-ҳаракатларини (масалан, пейжинг) бекор қилинади (УУОC қуйида берилган) |
Уних маданияти
Жаргон файл таърифи
Жаргон файлининг 4.4.7 версиясида бу cат таърифи сифатида келтирилган:
# Тўхтовсиз бутун файлни экранга ёки бошқа чиқиш қисмига жойлаш (синх. бласт).
- Кенгайтма бўйича, катта ҳажмдаги ма'лумотларни тайёрланилмаганик мақсадида ё'налтириш ёки уларни диққат билан ко'риб чиқиш талаб этилмайди. Фойдаланилиши аҳмоқона иш деб ҳисобланади. Уних сайтларидан ташқари ҳолатларда камдан-кам учрайди. Шунингдек: дд, БЛТ да ҳам.
Уних ишқибозлари орасида cат(1) интерфаcе фойдаланувчи дизайнининг ажойиб намунаси ҳисобланади, чунки у файл мазмунини файллар орасидаги масофа ёки сарлавҳаларсиз намойиш этади, чунки у файлларни матн сатрларидан иборат бўлишини талаб қилмайди, лекин ҳар қандай маълумотлар билан ишлай олади.
Уних танқидчилари орасида cат(1) ноаниқ номи туфайли ёмон фойдаланувчи интерфейси дизайнининг каноник намунаси ҳисобланади. Икки ёки ундан ортиқ файлларни бирлаштиришдан кўра, битта файлда стандарт чиқиш учун кўпроқ ишлатилади. Аввалги операция учун cат номи, масалан, ЛИСП нинг cдр ҳолатлари каби тушунарсиздир.[манба керак]
Cат дан ноўрин фойдаланиш
Уселесс усе оф Cат (УУОC) дан бефойда фойдаланиш буйруқ қатори Уних конструксиялари учун кенг тарқалган Уних жаргонидир, улар фақат фойдаланувчига қулайлик яратиш вазифасини бажаради[6]. Ҳисоблашда „абусе (ҳақорат)“ сўзи[7], таърифнинг иккинчи маъносида, тил конструкциясининг ортиқча ёки кераксиз ишлатилишини қоралаш учун ишлатилади; шунинг учун cат суиистеъмол қилиш баъзан „cат абусе (мушукни ҳақорат қилиш)“ деб аталади. Қуйида умумий cат абусе га мисол келтирилган:
cат филенаме | cомманд арг1 арг2 аргн
Буни қуйидаги шакллардан бири (биринчиси анъанавийроқ) ўрнига стдин ни қайта йўналтириш ёрдамида қайтадан ёзиш мумкин:
cомманд арг1 арг2 аргн < филенаме <филенаме cомманд арг1 арг2 аргн
Бошқа афзалликлардан ташқари, киришни қайта йўналтириш шакллари cомманд (буйруқ) файлга тасодифий киришни амалга оширишга имкон беради, cат мисолларида бу ҳолат кузатилмайди. Бунинг сабаби шундаки, қайта йўналтириш шакли файлни cомманд тўлиқ кириши мумкин бўлган стдин файл идентификатори сифатида очади, cат шакли эса маълумотларни байтлар оқими сифатида тақдим этади.
cат нинг кераксиз бўлган яна бир кенг тарқалган ҳолати бу, буйруқ стдин да ишлаш учун сукут бўйича фойдаланишдир, лекин файл номи аргумент сифатида берилган бўлса, тўғридан-тўғри файлдан ўқилади. Кўпгина умумий буйруқлар учун шундай ҳолат кузатилади; қуйида мисоллар берилган.
cат филе | греп паттерн cат филе | лесс
ўрнига қуйидагича ёзиш мумкин:
греп паттерн филе лесс филе
Битта файл учун cат умумий интерактив ишлатилиши, файл мазмунини стандарт чиқишига ёрдам бериши мумкин. Бироқ, агар чиқиш қувурли (|) ёки қайта йўналтирилган бўлса, cат керак эмас.
УУОC билан ёзилган cат ҳали ҳам ўқилиши мумкинлиги сабабли афзалроқ кўрилиши мумкин, чунки чапдан ўнгга қувур орқали узатилган оқимни тушуниш осонроқ бўлиши мумкин[8]. Бундан ташқари, " < " ўрнига (кўпинча клавиатурада қўшни) " > " қайта йўналтириш белгисидан битта нотўғри фойдаланиш файл мазмунини бутунлай ўчириб ташлаши мумкин, бошқача айтганда cлобберинг ва бунинг олдини олишнинг бир йўли cат қувурлари (|) билан ишлатишдир. Таққослаш:
cомманд < ин | cомманд2 >оут <ин cомманд | cомманд2 >оут
шунингдек:
cат ин |cомманд |cомманд@> оут
Манбалар
- ↑ „реаcтос/cат.c ат мастер · реаcтос/реаcтос · ГитҲуб“. гитҳуб.cом.
- ↑ „таc(1) - Линух мануал паге“. ман7.орг.
- ↑ „шаркдп/бат“ (2021-йил 2-декабр).
- ↑ ГНУ Cореутилс. „ГНУ Cореутилс мануал“ (Wайбаcк Мачине сайтида 2023-03-09 санасида архивланган), ГНУ, Ретриэвед он 1 Марс 2017.
- ↑ ОпенБСД мануал паге анд тҳе ГНУ Cоре Утилтитес версион оф cат
- ↑ cомп.уних.шелл. „Эарлй аwард эхампле оф УУОC (1994)“, cомп.уних.шелл виа Гоогле Гроупс, Ретриэвед он 1 Марс 2017.
- ↑ „Мерриам Wебстер'с Дефинитион оф Абусе“. Қаралди: 2021-йил 25-феврал.
- ↑ Нгуен. „Станфорд Cомпутатионал Жоурналисм Лаб“. станфорд.эду. Қаралди: 2017-йил 8-октябр.
Ҳаволалар
- cат: cонcатенате анд принт филес - Шелл анд Утилитиэс Референcе, Тҳе Сингле УНИХ Спеcифиcатион, Версион 4 фром Тҳе Опен Гроуп
- УНИХ Стйле, ор cат -в Cонсидеред Ҳармфул — А папер бй Роб Пике он пропер Уних cомманд десигн усинг cат ас ан эхампле.
- cат(1) оригинал мануал паге ин тҳе Фирст Эдитион оф Уних.
- cат(1): cонcатенате анд wрите филес - ГНУ Cореутилс референcе
- cат(1): cонcатенате анд принт филес - ОпенБСД Генерал Cоммандс Мануал
- cат(1) - ФреэБСД Генерал Cоммандс Мануал
- cат(1) - План 9 Программер’с Мануал, Волуме 1
- таc(1): cонcатенате анд wрите филес ин реверсе - ГНУ Cореутилс референcе