1 00:00:07,060 --> 00:00:08,420 [Powered by Google Translate] TOMMY: Bu video, biz öyrənmək lazımdır 2 00:00:08,420 --> 00:00:10,140 yönlendirme və borular. 3 00:00:10,140 --> 00:00:12,780 İndiyə qədər biz funksiyaları printf kimi istifadə etdik 4 00:00:12,780 --> 00:00:15,590 çıxış terminal məlumat və GetString kimi funksiyaları 5 00:00:15,590 --> 00:00:17,520 istifadəçi bizim üçün giriş təmin etmək üçün imkan 6 00:00:17,520 --> 00:00:19,490 klaviatura istifadə proqramı. 7 00:00:19,490 --> 00:00:21,880 Gəlin tez bir xətt olur ki, bir proqram nəzər 8 00:00:21,880 --> 00:00:25,960 istifadəçi daxil və sonra nəticələr. 9 00:00:25,960 --> 00:00:28,990 >> Line 7-də bir simli istifadəçi isteyen və edirik 10 00:00:28,990 --> 00:00:31,680 sonra on line 8, biz geri çap edirik. 11 00:00:31,680 --> 00:00:35,220 Bizim proqram tərtib run edək. 12 00:00:35,220 --> 00:00:35,900 Böyük. 13 00:00:35,900 --> 00:00:37,620 Biz təmin string geri yankılanacağını edilib 14 00:00:37,620 --> 00:00:39,170 Terminalda bizə. 15 00:00:39,170 --> 00:00:42,110 Bu printf funksiyası yazırdı, çünki bu baş 16 00:00:42,110 --> 00:00:46,220 axın standart səsləndi, və ya s-t-d-out. 17 00:00:46,220 --> 00:00:49,230 Bir şey stdout yazılı, o, u mənim deyil 18 00:00:49,230 --> 00:00:51,110 terminal göstərilir. 19 00:00:51,110 --> 00:00:53,720 >> Belə ki, bütün yaxşı və yaxşı, lakin nə əvəzinə sadəcə, əgər 20 00:00:53,720 --> 00:00:57,700 simli gösteren, biz bir fayl saxlamaq istəyirdi? 21 00:00:57,700 --> 00:01:00,470 Məsələn, biz yadda bilərsiniz dəqiq nə bizim 22 00:01:00,470 --> 00:01:04,450 biz daha sonra xüsusi bir giriş verdik proqram idi. 23 00:01:04,450 --> 00:01:07,270 Bir yanaşma istifadə edərək, bizim C proqram bunu etmək olardı 24 00:01:07,270 --> 00:01:09,680 faylları yazmaq üçün bəzi xüsusi funksiyaları biz lazımdır ki, 25 00:01:09,680 --> 00:01:11,270 başqa video baxın. 26 00:01:11,270 --> 00:01:13,260 Hətta daha asan olsa da, elə olacaq 27 00:01:13,260 --> 00:01:16,090 bir fayl stdout yönlendirme. 28 00:01:16,090 --> 00:01:19,780 Beləliklə, printf stdout yazır zaman, məzmunu olacaq 29 00:01:19,780 --> 00:01:21,720 bir fayl daha çox yazılır 30 00:01:21,720 --> 00:01:23,410 terminal göstərilir. 31 00:01:23,410 --> 00:01:26,690 Biz daha çox-çox işarəsi əlavə yalnız edə bilərsiniz, sonra 32 00:01:26,690 --> 00:01:30,820 bir fayl adı ilə komanda bizim proqram icra edin. 33 00:01:30,820 --> 00:01:34,730 >> Belə ki, daha çox sadəcə həyata. / Yönlendirme, biz bilər 34 00:01:34,730 --> 00:01:38,880 axır. / yönlendirme, sonra, giriş daha çox sonra 35 00:01:38,880 --> 00:01:41,530 file.txt kimi fayl. 36 00:01:41,530 --> 00:01:44,290 Nə görmək edək. 37 00:01:44,290 --> 00:01:45,130 OK. 38 00:01:45,130 --> 00:01:48,470 Bu zaman, heç bir terminal nümayiş olunub edək ki, 39 00:01:48,470 --> 00:01:50,290 lakin biz məzmunu redaktə deyil 40 00:01:50,290 --> 00:01:52,040 Bütün C proqramı. 41 00:01:52,040 --> 00:01:56,090 Indi ls bu directory məzmunu yoxlamaq edək. 42 00:01:56,090 --> 00:01:56,630 >> Bütün hüquqlar. 43 00:01:56,630 --> 00:02:00,840 Biz indi file.txt adlı kataloq yeni bir fayl var 44 00:02:00,840 --> 00:02:03,640 olan bizim qaçmış zaman təchiz fayl adı 45 00:02:03,640 --> 00:02:05,050 Proqram Yönlendirme. 46 00:02:05,050 --> 00:02:08,020 Nin file.txt açmaq edək. 47 00:02:08,020 --> 00:02:11,840 Və burada, biz yönlendirme və stdout həyata olduğunu görə bilərsiniz 48 00:02:11,840 --> 00:02:15,550 file.txt adlı fayl yazılı. 49 00:02:15,550 --> 00:02:18,470 Beləliklə nin yenidən əvvəlki funksiyanı çalıştırın qoy, lakin təmin 50 00:02:18,470 --> 00:02:20,075 müxtəlif giriş bu dəfə. 51 00:02:25,140 --> 00:02:25,900 Okay. 52 00:02:25,900 --> 00:02:28,205 Indi file.txt nəzər salaq. 53 00:02:31,070 --> 00:02:34,580 >> Biz fayl üzerine ki, burada edə bilərsiniz, belə ki, bizim 54 00:02:34,580 --> 00:02:37,120 orijinal giriş artıq yoxdur. 55 00:02:37,120 --> 00:02:40,280 Yerine bu fayl əlavə etmək istəyirsinizsə, yeni qoyaraq 56 00:02:40,280 --> 00:02:43,600 fayl mövcud məzmunu aşağıda giriş, biz 57 00:02:43,600 --> 00:02:46,800 yalnız bir əvəzinə iki böyük-dən əlamətləri istifadə edin. 58 00:02:46,800 --> 00:02:48,050 In ki, cəhd edək. 59 00:02:52,160 --> 00:02:57,910 Yenə file.txt açmaq varsa, biz həm də görə bilərsiniz 60 00:02:57,910 --> 00:02:59,580 daxil satır. 61 00:02:59,580 --> 00:03:02,180 Bəzi hallarda, biz hər hansı bir imtina edə bilərsiniz 62 00:03:02,180 --> 00:03:03,850 bizim proqram çıxdı. 63 00:03:03,850 --> 00:03:06,450 Əksinə bir fayl çıxış yazılı və sonra silmə çox 64 00:03:06,450 --> 00:03:09,310 biz bu Bitirdiğinizde fayl, biz xüsusi bir yaza bilərsiniz 65 00:03:09,310 --> 00:03:12,360 fayl / dev / null çağırıb. 66 00:03:12,360 --> 00:03:15,160 Bir şey / yazılı zaman dev/null-- 67 00:03:15,160 --> 00:03:16,960 və ya yalnız qısa devnull - 68 00:03:16,960 --> 00:03:18,950 avtomatik olaraq ləğv olunur. 69 00:03:18,950 --> 00:03:23,290 Belə ki, məlumat üçün qara deşik kimi devnull düşünürəm. 70 00:03:23,290 --> 00:03:26,070 >> Belə ki, indi biz daha çox əlamət yönlendirebilirsiniz necə gördüm 71 00:03:26,070 --> 00:03:29,610 stdout, biz standart yönlendirebilirsiniz necə edək - 72 00:03:29,610 --> 00:03:31,250 ya s-t-d-ci ildə - 73 00:03:31,250 --> 00:03:33,550 stdout və analoq. 74 00:03:33,550 --> 00:03:36,010 Funksiyaları kimi isə printf adlı stream yazmaq 75 00:03:36,010 --> 00:03:40,500 axın oxu stdout, GetString və analoji funksiyaları 76 00:03:40,500 --> 00:03:43,770 stdin deyilən olan, ismarıcları, bu axın edir 77 00:03:43,770 --> 00:03:46,290 simvollar klaviatura ilə yazılmış. 78 00:03:46,290 --> 00:03:50,010 Biz Bürc çox az istifadə stdin yönlendirebilirsiniz, sonra 79 00:03:50,010 --> 00:03:51,370 bir fayl adı ilə. 80 00:03:51,370 --> 00:03:54,000 İndi, daha çox da giriş üçün istifadəçi isteyen 81 00:03:54,000 --> 00:03:57,870 terminal, proqram biz göstərilən fayl açmaq və istifadə edəcək 82 00:03:57,870 --> 00:03:59,790 input kimi satır. 83 00:03:59,790 --> 00:04:02,620 >> Nə görmək edək. 84 00:04:02,620 --> 00:04:03,280 Böyük. 85 00:04:03,280 --> 00:04:07,590 File.txt ilk xətti terminal çap edilmişdir 86 00:04:07,590 --> 00:04:10,160 biz bir GetString zəng etdiyiniz çünki. 87 00:04:10,160 --> 00:04:13,170 Bizim proqram GetString başqa bir zəng var idi varsa, 88 00:04:13,170 --> 00:04:16,149 file.txt növbəti xətti kimi istifadə olunmuşdur ki, 89 00:04:16,149 --> 00:04:17,990 ki zəng daxil. 90 00:04:17,990 --> 00:04:21,050 Yenə biz bütün bizim C proqram redaktə deyil. 91 00:04:21,050 --> 00:04:23,620 Biz yalnız biz run necə dəyişir edirik. 92 00:04:23,620 --> 00:04:27,080 Və həmçinin, biz stdout bu dəfə yönlendirileceksiniz deyil, xatırlayıram 93 00:04:27,080 --> 00:04:28,970 belə proqramı ilə çıxış hələ də 94 00:04:28,970 --> 00:04:31,040 Terminalda göstərilir. 95 00:04:31,040 --> 00:04:33,500 Biz, əlbəttə, stdin həm yönlendirebilirsiniz 96 00:04:33,500 --> 00:04:37,320 bu kimi və stdout. 97 00:04:37,320 --> 00:04:43,550 İndi file2.txt file.txt ilk xətt var. 98 00:04:43,550 --> 00:04:46,140 >> Belə ki, bu operatoru istifadə edərək, biz oxumaq və edə bilərsiniz 99 00:04:46,140 --> 00:04:48,130 mətn faylları yazın. 100 00:04:48,130 --> 00:04:51,890 İndi kimi bir proqram çıxışı istifadə edə bilərsiniz necə in görək 101 00:04:51,890 --> 00:04:54,710 başqa bir proqram daxil. 102 00:04:54,710 --> 00:04:56,650 Belə ki, burada başqa sadə C proqram mən var 103 00:04:56,650 --> 00:05:00,190 burada hello.c çağırıb. 104 00:05:00,190 --> 00:05:02,617 Gördüyünüz kimi, bu, sadəcə Hi "nəticələri 105 00:05:02,617 --> 00:05:04,430 var! "istifadəçi. 106 00:05:04,430 --> 00:05:08,890 - Mən giriş kimi salam çıxdı istifadə yönlendirme istəyirsinizsə 107 00:05:08,890 --> 00:05:10,190 başqa bir proqram - 108 00:05:10,190 --> 00:05:13,920 Mən ilk adlı fayl salam və stdout yönlendirme bilər 109 00:05:13,920 --> 00:05:18,960 input.txt, o eyni yönlendirme və stdin yönlendirme 110 00:05:18,960 --> 00:05:21,190 fayl - input.txt. 111 00:05:21,190 --> 00:05:26,730 Mən bunu edə bilərsiniz. / Salam> input.txt. 112 00:05:26,730 --> 00:05:28,810 Bu icra Enter düyməsini basın. 113 00:05:28,810 --> 00:05:31,910 Izləyir. / Yönlendirme < 114 00:05:31,910 --> 00:05:35,270 input.txt və icra. 115 00:05:35,270 --> 00:05:38,290 Beləliklə, biz imkan verir nöqtəli vergül ilə bu bir az istehlak 116 00:05:38,290 --> 00:05:41,360 bizə eyni xətt üzrə iki və ya daha çox funksiyanı çalıştırmak. 117 00:05:41,360 --> 00:05:47,920 Mən, demək olar. / Salam> input.txt, nöqtəli vergül, 118 00:05:47,920 --> 00:05:50,580 . / 00:05:56,740 >> Bu işlər Beləliklə, lakin hələ olduqca sərt hiss edir. 120 00:05:56,740 --> 00:05:59,530 Mən demək, biz, həqiqətən ki, bu vasitəçi mətn fayl lazımdır 121 00:05:59,530 --> 00:06:02,520 çalışır yönlendirme sonra artıq lazımi? 122 00:06:02,520 --> 00:06:05,780 Xoşbəxtlikdən, biz nə istifadə edərək, bu əlavə mətn faylı qarşısını 123 00:06:05,780 --> 00:06:07,220 bir boru çağırıb. 124 00:06:07,220 --> 00:06:13,740 Deyə varsa, / salam |.. / Sonra, bu stdout yönlendirme 125 00:06:13,740 --> 00:06:15,310 sol proqramı - 126 00:06:15,310 --> 00:06:16,740 bu halda, salam - 127 00:06:16,740 --> 00:06:18,970 üçün standart giriş kimi istifadə olunacaq 128 00:06:18,970 --> 00:06:20,370 sağ proqramı. 129 00:06:20,370 --> 00:06:24,850 Bu halda, yönlendirme. Belə ki, bu run imkan verir. 130 00:06:24,850 --> 00:06:25,930 >> Biz də gedin. 131 00:06:25,930 --> 00:06:30,080 Biz daxil olaraq salam çıxdı istifadə edilmişdir ki, edə bilərsiniz 132 00:06:30,080 --> 00:06:31,520 İstiqamətləndirmə üçün. 133 00:06:31,520 --> 00:06:34,890 Birlikdə əmrləri stringing borular istifadə edərək, biz nə yaratmaq 134 00:06:34,890 --> 00:06:38,120 bizim çıxış mahiyyətcə hərəkət edir, çünki boru kəməri adlanır 135 00:06:38,120 --> 00:06:40,590 əmrləri bir ardıcıllıqla vasitəsilə. 136 00:06:40,590 --> 00:06:43,570 Borular istifadə edərək, biz qoymadan bəzi cool stuff edə bilər 137 00:06:43,570 --> 00:06:45,870 hər hansı bir kod yazmaq. 138 00:06:45,870 --> 00:06:48,760 Məsələn, qoy biz nə qədər çox fayl bilmək istəyirsiniz 139 00:06:48,760 --> 00:06:50,630 Bu kataloq daxilində. 140 00:06:50,630 --> 00:06:55,200 Bir boru istifadə edərək, wc ilə ls komanda birləşdirə bilər - 141 00:06:55,200 --> 00:06:56,460 və ya wordcount - 142 00:06:56,460 --> 00:06:57,850 komanda. 143 00:06:57,850 --> 00:07:02,230 Ls stdout üçün kataloq hər bir fayl çıxış edəcək 144 00:07:02,230 --> 00:07:08,040 wc stdin vasitəsilə verilmişdir neçə xətləri bizə olacaq. 145 00:07:08,040 --> 00:07:12,440 Belə ki, biz demək əgər ls | wc-l - 146 00:07:12,440 --> 00:07:16,800 xətləri saymaq demək wc üçün-l bayrağı təchizatı - 147 00:07:16,800 --> 00:07:19,260 Biz tam olaraq necə bir çox faylları görə bilərsiniz 148 00:07:19,260 --> 00:07:21,940 cari kataloq. 149 00:07:21,940 --> 00:07:24,570 >> Belə ki, daha bir misal nəzər salaq. 150 00:07:24,570 --> 00:07:27,740 Mən burada students.txt adlı bir fayl var 151 00:07:27,740 --> 00:07:29,600 adlarının siyahısı ilə. 152 00:07:29,600 --> 00:07:32,730 Lakin, bu adların hər hansı bir sırada bütün deyil və bu, görünür 153 00:07:32,730 --> 00:07:34,850 kimi bir neçə ad təkrarlanır. 154 00:07:34,850 --> 00:07:38,510 Biz istəyirik əlifba unikal adlar siyahısı 155 00:07:38,510 --> 00:07:42,550 final.txt adlı bir fayl qeyd üçün. 156 00:07:42,550 --> 00:07:45,210 Biz, əlbəttə, bizim üçün bunu C proqram yazmaq bilər. 157 00:07:45,210 --> 00:07:46,560 Amma lazımsız olacaq 158 00:07:46,560 --> 00:07:48,560 olduqca tez kompleksi. 159 00:07:48,560 --> 00:07:51,740 Gəlin əvəzinə həll etmək üçün borular və bəzi daxili-tools istifadə 160 00:07:51,740 --> 00:07:53,300 Bu problem. 161 00:07:53,300 --> 00:07:57,760 >> Biz nə etmək lazımdır ilk şey fayl students.txt oxumaq edir. 162 00:07:57,760 --> 00:08:00,530 Pişik komanda yalnız edəcəyik. 163 00:08:00,530 --> 00:08:03,230 Bu müəyyən fayl oxumaq və yazmaq olacaq 164 00:08:03,230 --> 00:08:05,750 stdout onun məzmunu. 165 00:08:05,750 --> 00:08:07,570 Biz mətn faylı oxumaq sonra, biz rəftar 166 00:08:07,570 --> 00:08:09,490 adları sort istəyirəm. 167 00:08:09,490 --> 00:08:12,510 Bu cür komanda bizim üçün bu idarə edə bilərsiniz. 168 00:08:12,510 --> 00:08:16,830 Sort stdout üçün stdin vasitəsilə təchiz xətti çıxış edəcək 169 00:08:16,830 --> 00:08:19,310 sıralanır üçün. 170 00:08:19,310 --> 00:08:23,450 Students.txt məzmunu tədarük üçün 171 00:08:23,450 --> 00:08:29,600 sort in stdin, biz pişik və sort birləşdirəcək boru istifadə edə bilər. 172 00:08:29,600 --> 00:08:34,440 Sort və | Mən pişik students.txt keçirə bilər 173 00:08:34,440 --> 00:08:35,640 Enter düyməsini basın. 174 00:08:35,640 --> 00:08:39,309 İndi biz students.txt məzmunu bax 175 00:08:39,309 --> 00:08:40,909 əlifba sırası. 176 00:08:40,909 --> 00:08:42,860 >> Belə nin başqa komanda əlavə edək - 177 00:08:42,860 --> 00:08:44,730 uniq, və ya unikal - 178 00:08:44,730 --> 00:08:46,230 bizim kəməri. 179 00:08:46,230 --> 00:08:49,810 Siz uniq tapmaq kimi, zaman bir sıralanır ardıcıllığı təmin 180 00:08:49,810 --> 00:08:53,650 stdin vasitəsilə xətləri, unikal xətləri çıxış edəcək. 181 00:08:53,650 --> 00:08:56,910 Belə ki, indi biz pişik students.txt var 182 00:08:56,910 --> 00:09:00,040 | Sort | uniq. 183 00:09:00,040 --> 00:09:03,330 Nəhayət, biz boru kəmərinin çıxış saxlaya bilərsiniz 184 00:09:03,330 --> 00:09:09,090 sort | | uniq pişik students.txt vasitəsilə fayl 185 00:09:09,090 --> 00:09:12,440 > Final.txt. 186 00:09:12,440 --> 00:09:16,260 Biz final.txt açmaq Belə ki, biz idi dəqiq nə 187 00:09:16,260 --> 00:09:17,270 Axtarıram: 188 00:09:17,270 --> 00:09:20,180 əlifba sırası unikal adlar siyahısı, 189 00:09:20,180 --> 00:09:22,150 bir mətn faylı saxlanılır. 190 00:09:22,150 --> 00:09:26,020 Yeri gəlmişkən, biz də ifadə edə bilər sırala < 191 00:09:26,020 --> 00:09:32,290 students.txt | uniq> final.txt etmək məhz 192 00:09:32,290 --> 00:09:35,400 Biz gördük operatorların hər istifadə edərək eyni şey, 193 00:09:35,400 --> 00:09:36,580 bu video. 194 00:09:36,580 --> 00:09:39,540 >> My name Tommy və bu CS50 edir.