1 00:00:07,060 --> 00:00:08,420 [Powered by Google Translate] 토미 :이 비디오에서 우리는에 대해 알아 보겠습니다 2 00:00:08,420 --> 00:00:10,140 리디렉션 및 파이프. 3 00:00:10,140 --> 00:00:12,780 지금까지, 우리는 기능에 적용됩니다 printf 좋아 사용하고 4 00:00:12,780 --> 00:00:15,590 출력 단자에 데이터 및 GetString 같은 기능 5 00:00:15,590 --> 00:00:17,520 사용자가 Google의 입력을 제공 할 수 있도록 허용하는 6 00:00:17,520 --> 00:00:19,490 키보드를 사용하여 프로그램. 7 00:00:19,490 --> 00:00:21,880 자, 신속의 라인을 확보 프로그램에서 살펴 8 00:00:21,880 --> 00:00:25,960 사용자의 입력 한 다음을 출력합니다. 9 00:00:25,960 --> 00:00:28,990 >> 7 호선에, 우리는 문자열이 사용자에게 메시지를 표시하고,하고 10 00:00:28,990 --> 00:00:31,680 그리고 8 호선에 우리는 다시 인쇄하고 있습니다. 11 00:00:31,680 --> 00:00:35,220 이 우리의 프로그램을 컴파일하고 실행합니다. 12 00:00:35,220 --> 00:00:35,900 좋아요. 13 00:00:35,900 --> 00:00:37,620 우리가 제공하는 문자열은 다시 에코되었다 14 00:00:37,620 --> 00:00:39,170 터미널에 우리. 15 00:00:39,170 --> 00:00:42,110 printf 함수를 썼다 때문에이 일 16 00:00:42,110 --> 00:00:46,220 스트림은 표준 불려, 또는 S-T-D-아웃. 17 00:00:46,220 --> 00:00:49,230 무언가가 STDOUT에 기록 할 때, 그것은 기본적으로입니다 18 00:00:49,230 --> 00:00:51,110 터미널에 표시됩니다. 19 00:00:51,110 --> 00:00:53,720 >> 그래서 모든 괜찮은데 뭐가 단순히의, 경우 20 00:00:53,720 --> 00:00:57,700 문자열을 표시하는, 우리는 파일에 저장하고 싶어? 21 00:00:57,700 --> 00:01:00,470 예를 들어, 우리는 기억 할 수도 있습니다 정확히 우리 22 00:01:00,470 --> 00:01:04,450 우리가 나중에 그것을 특정 입력을 주었을 때 프로그램이 했어요. 23 00:01:04,450 --> 00:01:07,270 하나의 방법은 사용의 C 프로그램에서이 작업을 수행하는 것 24 00:01:07,270 --> 00:01:09,680 파일에 쓰기위한 몇 가지 특별한 기능을 우리가 할 시간 25 00:01:09,680 --> 00:01:11,270 다른 동영상에서 참조하십시오. 26 00:01:11,270 --> 00:01:13,260 보다 쉽게​​,하지만 어떻게 든하는 것이다 27 00:01:13,260 --> 00:01:16,090 파일에 STDOUT 리디렉션합니다. 28 00:01:16,090 --> 00:01:19,780 그 방법은 printf STDOUT에 기록 할 때 내용이됩니다 29 00:01:19,780 --> 00:01:21,720 파일이 아닌 작성 30 00:01:21,720 --> 00:01:23,410 터미널에 표시됩니다. 31 00:01:23,410 --> 00:01:26,690 우리는보다 큼 기호를 추가하여 그냥 할 수있어, 다음 32 00:01:26,690 --> 00:01:30,820 파일 이름에 의해 명령에 우리는 우리의 프로그램을 실행하기 위해 사용합니다. 33 00:01:30,820 --> 00:01:34,730 >> 그래서,보다 간단하게 실행. / 리디렉션, 우리는 할 수 있습니다 34 00:01:34,730 --> 00:01:38,880 실행. / 리디렉션에 이어, 기호보다 더 큰 다음 35 00:01:38,880 --> 00:01:41,530 file.txt와 같은 파일 이름. 36 00:01:41,530 --> 00:01:44,290 어떻게 알아 보자. 37 00:01:44,290 --> 00:01:45,130 OK. 38 00:01:45,130 --> 00:01:48,470 이 시간이, 아무것도 터미널에 표시되지 아니 여서, 39 00:01:48,470 --> 00:01:50,290 그러나 우리는 우리의 내용을 수정하지 않았습니다 40 00:01:50,290 --> 00:01:52,040 전혀 C 프로그램입니다. 41 00:01:52,040 --> 00:01:56,090 의 지금이게와이 디렉토리의 내용을 살펴 보자. 42 00:01:56,090 --> 00:01:56,630 >> 괜찮아요. 43 00:01:56,630 --> 00:02:00,840 우리는 지금, file.txt라는 우리의 디렉토리에 새로운 파일이 44 00:02:00,840 --> 00:02:03,640 그건 우리가 우리를 실행하면 우리가 제공하는 파일 이름입니다 45 00:02:03,640 --> 00:02:05,050 프로그램을 리디렉션합니다. 46 00:02:05,050 --> 00:02:08,020 가 file.txt를 열어 보자. 47 00:02:08,020 --> 00:02:11,840 여기, 우리는 리디렉션의 STDOUT 아웃이 있다고 볼 수 있습니다 48 00:02:11,840 --> 00:02:15,550 file.txt라는 파일에 기록. 49 00:02:15,550 --> 00:02:18,470 그럼 다시 이전 명령을 실행하게하지만를 제공 50 00:02:18,470 --> 00:02:20,075 다른 입력이 시간. 51 00:02:25,140 --> 00:02:25,900 좋아요. 52 00:02:25,900 --> 00:02:28,205 의 지금 file.txt를 살펴 보자. 53 00:02:31,070 --> 00:02:34,580 >> 우리는 파일을 덮어 된 것으로 볼 수 있으므로 우리 54 00:02:34,580 --> 00:02:37,120 원래 입력은 더 이상 없다. 55 00:02:37,120 --> 00:02:40,280 우리가 대신이 파일에 추가하려는 경우, 새를 넣어 56 00:02:40,280 --> 00:02:43,600 파일의 기존 내용을 아래에 입력, 우리가 할 수 57 00:02:43,600 --> 00:02:46,800 단 하나 대신에 두개의보다 큼 기호를 사용합니다. 58 00:02:46,800 --> 00:02:48,050 씨가를 사용해 보자. 59 00:02:52,160 --> 00:02:57,910 우리가 다시 file.txt 열라면, 우리는 모두를 볼 수 있습니다 60 00:02:57,910 --> 00:02:59,580 입력 라인. 61 00:02:59,580 --> 00:03:02,180 어떤 경우에는, 우리는 어떤을 취소 할 수도 있습니다 62 00:03:02,180 --> 00:03:03,850 우리 프로그램의 출력. 63 00:03:03,850 --> 00:03:06,450 오히려 파일에 출력을 작성하고 삭제하는 것보다 64 00:03:06,450 --> 00:03:09,310 우리가 그 짓을하는 파일은, 우리가 특별에을 (를) 쓸 수 65 00:03:09,310 --> 00:03:12,360 파일은 / dev / null로했다. 66 00:03:12,360 --> 00:03:15,160 아무는 /에 기록 할 때 dev/null-- 67 00:03:15,160 --> 00:03:16,960 또는 짧은에 대한 devnull - 68 00:03:16,960 --> 00:03:18,950 가 자동으로 삭제됩니다. 69 00:03:18,950 --> 00:03:23,290 따라서 데이터에 대한 블랙홀로 devnull 생각합니다. 70 00:03:23,290 --> 00:03:26,070 >> 그래서 지금 우리는보다 큰 신호 리디렉션 할 수있는 방법 본 71 00:03:26,070 --> 00:03:29,610 STDOUT, 우리가 표준 리디렉션 할 수있는 방법 알아 보자 - 72 00:03:29,610 --> 00:03:31,250 또는 S-T-D-에 - 73 00:03:31,250 --> 00:03:33,550 STDOUT의 아날로그. 74 00:03:33,550 --> 00:03:36,010 기능이 좋아하지만 printf라는 스트림에 쓰기 75 00:03:36,010 --> 00:03:40,500 스트림에서 읽어 STDOUT, GetString 및 이와 유사한 기능을 76 00:03:40,500 --> 00:03:43,770 표준 입력 불리는하는 기본적으로의 흐름입니다 77 00:03:43,770 --> 00:03:46,290 문자는 키보드에 입력. 78 00:03:46,290 --> 00:03:50,010 우리는 기호보다 적게을 사용하여 표준 입력을 리디렉션 할 수 있습니다 다음 79 00:03:50,010 --> 00:03:51,370 파일 이름을 기준으로. 80 00:03:51,370 --> 00:03:54,000 지금보다는의 입력을위한 사용자에게 메시지를 표시 81 00:03:54,000 --> 00:03:57,870 터미널은 프로그램이 우리가 지정한 파일을 열고 사용 82 00:03:57,870 --> 00:03:59,790 입력으로는 라인. 83 00:03:59,790 --> 00:04:02,620 >> 어떻게 알아 보자. 84 00:04:02,620 --> 00:04:03,280 좋아요. 85 00:04:03,280 --> 00:04:07,590 file.txt의 첫 번째 라인은 터미널에 인쇄 된 86 00:04:07,590 --> 00:04:10,160 우리는 한 번 GetString를 호출하는거야. 87 00:04:10,160 --> 00:04:13,170 우리 프로그램에 GetString에 다른 전화가 있으면, 88 00:04:13,170 --> 00:04:16,149 file.txt의 다음 라인으로 사용 된 것 89 00:04:16,149 --> 00:04:17,990 그 전화에 입력. 90 00:04:17,990 --> 00:04:21,050 다시 말하지만, 우리는 모든 페이지의 C 프로그램을 수정하지 않았습니다. 91 00:04:21,050 --> 00:04:23,620 우리는 우리가 그것을 실행하는 방법이 변경됩니다. 92 00:04:23,620 --> 00:04:27,080 또한, 우리는 STDOUT에게이 시간을 리디렉션하지 않은 기억 93 00:04:27,080 --> 00:04:28,970 그래서 프로그램의 출력은 여전히​​했습니다 94 00:04:28,970 --> 00:04:31,040 터미널에 표시됩니다. 95 00:04:31,040 --> 00:04:33,500 우리는 물론, 표준 입력을 모두 리디렉션 할 수 있습니다 96 00:04:33,500 --> 00:04:37,320 같은과 STDOUT. 97 00:04:37,320 --> 00:04:43,550 이제 file2.txt는 file.txt의 첫 번째 행이 포함되어 있습니다. 98 00:04:43,550 --> 00:04:46,140 >> 따라서이 연산자를 사용, 우리는 읽고 수있었습니다 99 00:04:46,140 --> 00:04:48,130 텍스트 파일에서 써주세요. 100 00:04:48,130 --> 00:04:51,890 이제 우리가 같이 하나의 프로그램의 출력을 사용할 수있는 방법에 보자 101 00:04:51,890 --> 00:04:54,710 다른 프로그램에 입력. 102 00:04:54,710 --> 00:04:56,650 그래서 여기 또 다른 간단한 C 프로그램은 I입니다 103 00:04:56,650 --> 00:05:00,190 여기에 hello.c라는했습니다. 104 00:05:00,190 --> 00:05:02,617 당신이 볼 수 있듯이,이 단순히 "안녕 출력 105 00:05:02,617 --> 00:05:04,430 가! "사용자. 106 00:05:04,430 --> 00:05:08,890 - 내가 입력으로 인사의 출력을 사용하여 리디렉션하려는 경우 107 00:05:08,890 --> 00:05:10,190 다른 프로그램 - 108 00:05:10,190 --> 00:05:13,920 처음이라는 파일에 인사의 STDOUT을 리디렉션 할 수 109 00:05:13,920 --> 00:05:18,960 input.txt 다음 같은 사이트로 리디렉션의 표준 입력을 리디렉션 110 00:05:18,960 --> 00:05:21,190 파일 - input.txt. 111 00:05:21,190 --> 00:05:26,730 그래서 할 수 있습니다. / 인사> input.txt. 112 00:05:26,730 --> 00:05:28,810 이 실행 Enter 키를 누릅니다. 113 00:05:28,810 --> 00:05:31,910 다음. / 리디렉션 < 114 00:05:31,910 --> 00:05:35,270 input.txt, 그리고 그렇게 실행합니다. 115 00:05:35,270 --> 00:05:38,290 그래서 우리는 할 수있는 세미콜론과 함께이 비트를 단축 할 수 116 00:05:38,290 --> 00:05:41,360 우리는 같은 줄에 두 개 이상의 명령을 실행합니다. 117 00:05:41,360 --> 00:05:47,920 그래서, 말할 수있는. / 인사> input.txt, 세미콜론, 118 00:05:47,920 --> 00:05:50,580 . / 00:05:56,740 >> 이 작품은 그래서,하지만 여전히 아주 우아하지 않은 느낀다. 120 00:05:56,740 --> 00:05:59,530 내 말은, 우리는 정말로이 중간 텍스트 파일을 필요합니까 121 00:05:59,530 --> 00:06:02,520 실행을 리디렉션 한 후 더 이상 필요? 122 00:06:02,520 --> 00:06:05,780 다행히, 우리는 어떤 사용하여이 추가 텍스트 파일을 방지 할 수 있습니다 123 00:06:05,780 --> 00:06:07,220 파이프했다. 124 00:06:07,220 --> 00:06:13,740 내가 말할 경우, / 인사 |..는 / 다음의 STDOUT을 리디렉션 125 00:06:13,740 --> 00:06:15,310 왼쪽에있는 프로그램 - 126 00:06:15,310 --> 00:06:16,740 이 경우, 안녕 - 127 00:06:16,740 --> 00:06:18,970 의 표준 입력으로 사용됩니다 128 00:06:18,970 --> 00:06:20,370 오른쪽 프로그램입니다. 129 00:06:20,370 --> 00:06:24,850 이 경우 리디렉션합니다. 그럼이 일을 실행할 수 있습니다. 130 00:06:24,850 --> 00:06:25,930 >> 우리는 간다. 131 00:06:25,930 --> 00:06:30,080 우리는 입력으로 인사의 출력이 사용 된 것을 알 수 있습니다 132 00:06:30,080 --> 00:06:31,520 리디렉션하십시오. 133 00:06:31,520 --> 00:06:34,890 함께 명령을 미뤄 파이프를 사용하여, 우리는 어떤 형성 134 00:06:34,890 --> 00:06:38,120 우리의 출력은 기본적으로 이동하고 있기 때문에 파이프 라인이라고 135 00:06:38,120 --> 00:06:40,590 명령 순서를 통해. 136 00:06:40,590 --> 00:06:43,570 파이프 사용, 우리는 할 필요없이 멋진 물건을 할 수 137 00:06:43,570 --> 00:06:45,870 전혀 코드를 작성합니다. 138 00:06:45,870 --> 00:06:48,760 예를 들어, 우리가 얼마나 많은 파일 알고 싶어 말 139 00:06:48,760 --> 00:06:50,630 이 디렉토리의 내부. 140 00:06:50,630 --> 00:06:55,200 파이프 사용, 우리는 화장실인가요 명령을 결합 할 수 있습니다 - 141 00:06:55,200 --> 00:06:56,460 또는 wordcount - 142 00:06:56,460 --> 00:06:57,850 명령을 사용합니다. 143 00:06:57,850 --> 00:07:02,230 접대 STDOUT에 대한 디렉토리에있는 각 파일을 출력하고, 수 144 00:07:02,230 --> 00:07:08,040 화장실은 표준 입력을 통해에 주어진 얼마나 많은 행를 알려줍니다. 145 00:07:08,040 --> 00:07:12,440 그럼, 우리 말을하면 혹시 | 화장실 - 난 - 146 00:07:12,440 --> 00:07:16,800 라인 수를 계산 할 말을 화장실로 - 난 플래그를 제공 - 147 00:07:16,800 --> 00:07:19,260 우리가 정확히 얼마나 많은 파일을 볼 수 있습니다 148 00:07:19,260 --> 00:07:21,940 현재 디렉토리 인치 149 00:07:21,940 --> 00:07:24,570 >> 그럼 하나 더 예를 살펴 보자. 150 00:07:24,570 --> 00:07:27,740 내가 여기 students.txt라는 파일이 151 00:07:27,740 --> 00:07:29,600 이름의 목록. 152 00:07:29,600 --> 00:07:32,730 그러나 이러한 이름은 임의의 순서 모든 없으며, 보이는 153 00:07:32,730 --> 00:07:34,850 같은 몇 가지 이름이 반복됩니다. 154 00:07:34,850 --> 00:07:38,510 우리가 원하는 건 알파벳의 고유 한 이름의 목록입니다 155 00:07:38,510 --> 00:07:42,550 final.txt라는 파일에 저장하려면. 156 00:07:42,550 --> 00:07:45,210 우리는 물론 우리를 위해이 작업을 수행 할 수있는 C 프로그램을 작성 수 있습니다. 157 00:07:45,210 --> 00:07:46,560 그러나 불필요하게 얻을 수있어 158 00:07:46,560 --> 00:07:48,560 너무 빨리 복잡한. 159 00:07:48,560 --> 00:07:51,740 자, 대신 해결하기 위해 파이프 및 일부 내장 - 도구를 사용 160 00:07:51,740 --> 00:07:53,300 이 문제. 161 00:07:53,300 --> 00:07:57,760 >> 우리가해야 할 첫 번째 것은 파일 students.txt을 읽을 수 있습니다. 162 00:07:57,760 --> 00:08:00,530 고양이 명령은 그냥 할 것입니다. 163 00:08:00,530 --> 00:08:03,230 그것은 지정된 파일에 읽기 및 쓰기합니다 164 00:08:03,230 --> 00:08:05,750 STDOUT에 그 내용. 165 00:08:05,750 --> 00:08:07,570 우리는 텍스트 파일을 읽은 후, 우리끼리 166 00:08:07,570 --> 00:08:09,490 이름을 정렬하고 싶습니다. 167 00:08:09,490 --> 00:08:12,510 정렬 명령은 우리를 위해이 일을 처리 할 수​​ 있습니다. 168 00:08:12,510 --> 00:08:16,830 정렬은 STDOUT에 표준 입력을 통해 공급 라인을 출력합니다 169 00:08:16,830 --> 00:08:19,310 정렬 순서를 유지해야합니다. 170 00:08:19,310 --> 00:08:23,450 students.txt의 내용으로 공급하기 위하여 171 00:08:23,450 --> 00:08:29,600 정렬의 표준 입력, 우리는 고양이 정렬을 결합하기 위해 파이프를 사용할 수 있습니다. 172 00:08:29,600 --> 00:08:34,440 정렬 및 | 그래서 고양이 students.txt을 실행할 수 173 00:08:34,440 --> 00:08:35,640 Enter 키를 누릅니다. 174 00:08:35,640 --> 00:08:39,309 그리고 지금, 우리는에 students.txt의 내용을 참조하십시오 175 00:08:39,309 --> 00:08:40,909 알파벳 순서. 176 00:08:40,909 --> 00:08:42,860 >> 그럼 다른 명령을 추가 할 수 있도록 - 177 00:08:42,860 --> 00:08:44,730 uniq, 또는 독특한 - 178 00:08:44,730 --> 00:08:46,230 우리의 파이프 라인합니다. 179 00:08:46,230 --> 00:08:49,810 당신이 uniq를 추측 하듯이, 때의 정렬 순서를 제공 180 00:08:49,810 --> 00:08:53,650 표준 입력을 통해 라인은 독특한 라인을 출력합니다. 181 00:08:53,650 --> 00:08:56,910 이제 우리는 고양이 students.txt이 182 00:08:56,910 --> 00:09:00,040 | 정렬 | uniq. 183 00:09:00,040 --> 00:09:03,330 마지막으로, 우리는에 파이프 라인의 출력을 절약 할 수 있습니다 184 00:09:03,330 --> 00:09:09,090 정렬 | | uniq 고양이 students.txt를 통해 파일을 185 00:09:09,090 --> 00:09:12,440 > final.txt. 186 00:09:12,440 --> 00:09:16,260 우리가 final.txt을 열고 경우, 우리는 우리가 정확히이 187 00:09:16,260 --> 00:09:17,270 찾고 : 188 00:09:17,270 --> 00:09:20,180 알파벳 순서에 따라 고유 한 이름의 목록 189 00:09:20,180 --> 00:09:22,150 텍스트 파일에 저장되었습니다. 190 00:09:22,150 --> 00:09:26,020 그건 그렇고, 우리는 말하는거야 정렬 < 191 00:09:26,020 --> 00:09:32,290 students.txt | uniq> final.txt 짓 정확히 192 00:09:32,290 --> 00:09:35,400 우리가 본 운영자의 각을 사용하여 같은 일, 193 00:09:35,400 --> 00:09:36,580 이 동영상을. 194 00:09:36,580 --> 00:09:39,540 >> 내 이름은 토미이고,이 CS50입니다.