[Powered by Google Translate] டாமி: இந்த வீடியோ, நாம் அறிய வேண்டும்
திருப்பி மற்றும் குழாய்கள்.
இதுவரை, நாம் செயல்படும் printf பயன்படுத்தி
வெளியீடு முனையத்தில் தரவு மற்றும் GetString போன்ற செயல்பாடுகளை
பயனர் எங்கள் உள்ளீடு வழங்க அனுமதிக்க
விசைப்பலகை பயன்படுத்தி நிரல்.
நாம் விரைவாக ஒரு வரி பெறும் என்று ஒரு திட்டத்தை பாருங்கள்
பயனர் உள்ளீடு மற்றும் அது வெளியிடுகிறது.
>> வரி 7, நாம் ஒரு சரம் பயனர் கேட்கும், மற்றும்
பின் வரிசை 8, நாம் அதை திரும்ப அச்சிடுகிறது.
நமது நிரலை கம்பைல் மற்றும் ஓடிப்போகட்டும்.
பெரிய.
நாம் வழங்கப்படும் சரம் கேட்கும்
முனையத்தில் எங்களுக்கு.
Printf செயல்பாடு ஒரு கடிதம் எழுதினார் ஏனெனில் இந்த நடந்தது
ஸ்ட்ரீம் தரம் அழைத்தார், அல்லது S-T-d-அவுட்.
ஏதாவது stdout எழுதப்படும் போது, அது இயல்பாக இருக்கிறது
முனையம் மூலம் காட்டப்படும்.
>> அதனால் அனைத்து நல்ல, ஆனால் என்ன பதிலாக வெறுமனே ஒரு, என்றால்
சரம் காட்டும், நாம் ஒரு கோப்பு அதை காப்பாற்ற வேண்டும்?
உதாரணமாக, நாம் நினைவில் கொள்ள வேண்டும் என்பதை எங்கள்
நாம் பின்னர் அது ஒரு குறிப்பிட்ட உள்ளீடு கொடுத்தார் போது திட்டத்தை செய்தார்.
ஒரு அணுகுமுறையை பயன்படுத்தி, நம் சி திட்டத்தில் இதை செய்ய வேண்டும்
கோப்புகளை எழுத சில சிறப்பு பணிகளை நாம் கொடுப்பீர்கள் என்று
மற்றொரு வீடியோ பார்க்க.
கூட எளிதாக, எனினும், எப்படியோ வேண்டும்
ஒரு கோப்பை stdout திருப்பிவிட.
அந்த வழியில், printf stdout எழுதுவதை போது, உள்ளடக்கங்களை சாப்பிடுவேன்
ஒரு கோப்பை விட எழுத
முனையம் மூலம் காட்டப்படும்.
நாங்கள் ஒரு பெரிய விட அடையாளம் சேர்ப்பதன் மூலம் தான் செய்ய முடியும், தொடர்ந்து
ஒரு கோப்பு பெயர், கட்டளைக்கு நாம் நம் திட்டத்தை நிறைவேற்ற வேண்டும்.
>> எனவே, அல்லாமல் இயக்கும். / திருப்பி, நாம்
ரன். / திருப்பி, தொடர்ந்து, அடையாளம் விட தொடர்ந்து
file.txt போன்ற கோப்பு,.
என்ன நடக்கிறது என்று பார்ப்போம்.
சரி.
இந்த நேரத்தில், எதுவும் முனையத்தில் காட்டப்படும் என்று பாருங்கள்,
ஆனால் நாம் உள்ளடக்கங்களை மாற்றம் இல்லை
அனைத்து சி திட்டம்.
இப்போது ls இந்த அடைவின் உள்ளடக்கங்களை ஆராய்வோம்.
>> எல்லாம் சரி.
நாம் இப்போது, file.txt என்று எங்கள் அடைவில் ஒரு புதிய கோப்பு இல்லை
இதில் நாம் ஓடி போது நாம் வழங்கப்பட்ட கோப்பு பெயர்
நிரல் திருப்பிவிட.
அது file.txt திறந்து விட.
இங்கே, நாங்கள் திருப்பி என்ற stdout அவுட் என்று பார்க்கலாம்
file.txt என்று கோப்புக்கு எழுதப்படுகிறது.
எனவே மீண்டும் முந்தைய கட்டளையை இயக்க அனுமதிக்க, ஆனால் ஒரு வழங்குவதன்
பல்வேறு உள்ளீடு இந்த நேரம்.
சரி.
இப்போது file.txt ஒரு பார்க்கலாம்.
>> நாம் கோப்பு மறைந்து வருகிறது என்று இங்கே பார்க்க முடியும், நமது
அசல் உள்ளீடு இனி இல்லை.
நாம் பதிலாக இந்த கோப்பில் சேர்க்க வேண்டும் என்றால், புதிய போடுவதற்கு
கோப்பு ஏற்கனவே உள்ளடக்கங்களை கீழே உள்ளீடு, நாம்
ஒரு பதிலாக இரண்டு பெரிய விட அறிகுறிகள் பயன்படுத்த.
தான் என்று பார்க்கலாம்.
நாங்கள் மீண்டும் file.txt திறக்க இப்போது, நாம் இருவரும் பார்க்க முடியும்
உள்ளீடு கோடுகள்.
சில சமயங்களில், நாம் எந்த நிராகரிக்க வேண்டும்
எங்கள் திட்டத்தின் வெளியீடு.
ஒரு கோப்பை வெளியீடு எழுதி பின்னர் அழிப்பதை விட
நாம் அது முடித்துவிட்டீர்கள் போது கோப்பு, நாம் சிறப்பு ஒரு எழுதலாம்
கோப்பு / dev / null என்று.
எதுவும் / எழுதப்படும் போது dev/null--
அல்லது சுருக்கமாக devnull -
அது தானாக அகற்றப்படுகிறது.
உங்கள் தரவு ஒரு கருப்பு துளை devnull என்று.
>> எனவே இப்போது நாம் அதிகமாக அடையாளம் திருப்பி எப்படி நான் பார்த்திருக்கிறேன்
stdout, நாங்கள் நிலையான திருப்பி எப்படி என்று பார்ப்போம் -
அல்லது S-T-d-ல் -
stdout ஒரு அனலாக்.
செயல்பாடுகள் போன்ற போது printf என்று ஸ்ட்ரீம் எழுத
ஸ்ட்ரீம் படிக்க stdout, GetString மற்றும் ஒத்த செயல்பாடுகளை
stdin என்று, இது, முன்னிருப்பாக, ஒரு ஸ்ட்ரீம்
எழுத்துக்கள் விசைப்பலகை உள்ள தட்டச்சு.
நாங்கள் அடையாளம் குறைவாக பயன்படுத்தி stdin திருப்பிவிட முடியாது, தொடர்ந்து
ஒரு கோப்பு மூலம்.
இப்போது, பதிலாக ஒரு உள்ளீடு பயனர் கேட்கும்
முனையம், ஒரு திட்டத்தை நாம் குறிப்பிட்ட கோப்பு திறக்கும் மற்றும் பயன்படுத்த
உள்ளீடு அதன் கோடுகள்.
>> என்ன நடக்கிறது என்று பார்ப்போம்.
பெரிய.
file.txt முதல் வரி முனையம் அச்சிடப்பட்டு
நாங்கள் ஒரு முறை GetString நினைத்தீர்கள் ஏனெனில்.
நாம் நமது திட்டத்தில் GetString மற்றொரு அழைப்பு இருந்தால்,
file.txt அடுத்த வரியை பயன்படுத்தி
அந்த அழைப்பை உள்ளீடு.
மீண்டும், நாம் அனைவரும் நம் சி நிரல் மாற்றம் இல்லை.
நாம் மட்டுமே, நாம் அதை இயக்க எப்படி மாற்றுகிறோம்.
மேலும், நாம் stdout இந்த நேரத்தில் திருப்பிவிடப்பட்டது இல்லை, நினைவில்
எனவே திட்டத்தின் வெளியீடு இருந்தது
முனையத்தில் காட்டப்படும்.
நாம், நிச்சயமாக, stdin இரண்டு திருப்பிவிட முடியாது
இந்த மாதிரி மற்றும் stdout.
இப்போது, file2.txt file.txt முதல் வரிசையில் உள்ளது.
>> எனவே, இந்த ஆபரேட்டர்கள் மூலம், நாம் வாசிக்க முடிந்தது
உரை கோப்புகளை எழுத.
இப்போது, நாம் ஒரு திட்டத்தை வெளியீடு பயன்படுத்தலாம் எப்படி நாம் பார்ப்போம்
மற்றொரு திட்டம் உள்ளீடு.
இங்கு மற்றொரு எளிய சி திட்டத்தை நான் தான்
இங்கே hello.c அழைப்பு விடுத்துள்ளன.
நீங்கள் பார்க்க முடியும் என, இந்த வெறுமனே வணக்கம் "வெளியீடாக
அங்கு! "பயனருக்கு.
- நான் உள்ளீடாக ஹலோ வெளியீடு பயன்படுத்த திருப்பிவிட வேண்டும்
மற்றொரு திட்டம் -
நான் முதல் ஒரு கோப்பை ஹலோ ஒரு stdout திருப்பிவிட முடியாது
input.txt, பின்னர் அதே திருப்பி என்ற stdin திருப்பிவிட
கோப்பு - input.txt.
அதனால் நான் என்ன செய்ய முடியும். / ஹலோ> input.txt.
இந்த இயக்க Enter அழுத்தவும்.
தொடர்ந்து. / திருப்பி <
input.txt, அந்த இயக்க.
நாம் அனுமதிக்கும் ஒரு அரைப்புள்ளி இந்த ஒரு பிட், சுருக்க முடியாது
எங்களுக்கு ஒரே வரியில் இரண்டு அல்லது அதற்கு மேற்பட்ட கட்டளைகளை இயக்க.
அதனால் நான், சொல்ல முடியாது. / ஹலோ> input.txt, அரைப்புள்ளி,
. / <Input.txt திருப்பிவிட.
>> இந்த பணிகள் மிக, ஆனால் அது இன்னும் அழகாக அழகில்லாத உணர்கிறது.
அதாவது, நாம் உண்மையில் அது இந்த இடையே உரை கோப்பு வேண்டும்
ரன்கள் திருப்பி பிறகு இனி தேவையான?
அதிர்ஷ்டவசமாக, நாம் என்ன பயன்படுத்தி இந்த கூடுதல் உரை கோப்பு தவிர்க்க முடியாது
குழாய் என்று.
நான் சொன்னால், / ஹலோ |.. / பின், ஒரு stdout திருப்பிவிட
இடது திட்டம் -
இந்த வழக்கில், ஹலோ -
தரப்படுத்தப்பட்ட உள்ளீடு பயன்படுத்தப்படுகிறது
வலது நிரல்.
இந்த வழக்கில், திசைதிருப்ப. எனவே இந்த இயக்க அனுமதிக்க.
>> அங்கு நாம்.
நாம் உள்ளீடாக ஹலோ வெளியீடு பயன்படுத்தப்படும் என்று பார்க்கலாம்
திருப்பிவிட வேண்டும்.
ஒன்றாக கட்டளைகளை stringing குழாய்கள் மூலம், நாம் என்ன அமைக்க
நம் வெளியீடு அடிப்படையில் நகரும் இருந்து, ஒரு குழாய் என்று
கட்டளைகளை மூலம்.
குழாய்கள் மூலம், நாம் தேவையில்லாமலேயே சில குளிர் விஷயங்களை செய்ய முடியும்
எந்த குறியீடு எழுத.
உதாரணமாக, நாம் எப்படி பல கோப்புகளை தெரிந்து கொள்ள வேண்டும் என்று
இந்த அடைவு உள்ளே.
குழாய் பயன்படுத்தி, நாம் WC உடன் ls கட்டளை சேர்த்து கொள்ளலாம் -
அல்லது வார்த்தைகளின் எண்ணிக்கை -
கட்டளை.
Ls stdout அடைவை ஒவ்வொரு கோப்பு வெளியீடு, மற்றும்
WC stdin மூலம் வழங்கப்பட்டது எப்படி பல வரிகளை நாம் சொல்லும்.
எனவே, நாம் சொன்னால் LS | WC-l -
வரிகளை எண்ண அதை சொல்ல WC செய்ய-l கொடி வழங்கி -
நாம் எத்தனை கோப்புகளை பார்க்க முடியும்
தற்போதைய அடைவில்.
>> எனவே இன்னும் ஒரு உதாரணம் பாருங்கள் நாம்.
நான், இங்கே students.txt என்று ஒரு கோப்பு உள்ளது
பெயர்கள் பட்டியல்.
எனினும், இந்த பெயர்கள் எந்த வகையில் எல்லாம் இல்லை, அது தெரிகிறது
போன்ற ஒரு சில பெயர்கள் திரும்பவும்.
நாம் என்ன வேண்டும் அகரவரிசை உள்ள தனிப்பட்ட பெயர்கள் பட்டியல்
final.txt என்ற கோப்பில் சேமிக்க வேண்டும்.
நாம், நிச்சயமாக, நாம் இதை செய்ய ஒரு சி நிரல் எழுத முடியும்.
ஆனால் அதை தேவையில்லாமல் பெற நடக்கிறது
அழகான விரைவில் சிக்கலான.
நாம் பதிலாக தீர்க்க குழாய்கள் மற்றும் சில உள்ளமைக்கப்பட்ட-கருவிகள் பயன்படுத்த
இந்த சிக்கல்.
>> நாம் செய்ய வேண்டியது முதல் விஷயம் கோப்பு students.txt படிக்க வேண்டும்.
cat கட்டளையை தான் செய்யும்.
அது குறிப்பிட்ட கோப்பில் எழுத படிக்க
stdout அதன் உள்ளடக்கங்களை.
நாம் உரை கோப்பு படித்த பிறகு, நாம் தருகிறேன்
பெயர்களை வரிசைப்படுத்த வேண்டும்.
ஒருவித கட்டளை எங்களுக்கு இந்த கையாள முடியும்.
வரிசை stdout க்கு stdin வழியாக வழங்கப்பட்ட வரி வெளியனுப்புவதில்
வரிசைப்படுத்தப்பட்ட பொருட்டு.
Students.txt உள்ளடக்கங்களை செய்ய வழங்க வேண்டும்
அப்படி தான் stdin, நாம் பூனை மற்றும் வகையான இணைக்க குழாய் பயன்படுத்த முடியும்.
வகை மற்றும் | நான் பூனை students.txt இயக்க முடியும்
Enter அழுத்தவும்.
இப்போது, நாம் students.txt உள்ளடக்கங்களை பார்க்க
அகரவரிசையில்.
>> எனவே மற்றொரு கட்டளையை சேர்க்க -
uniq, அல்லது தனிப்பட்ட -
எங்கள் குழாய் வேண்டும்.
நீங்கள், uniq நினைக்கிறேன் போல போது ஒரு வரிசைப்படுத்தப்பட்ட வரிசை வழங்கப்பட்டது
stdin வழியாக கோடுகள், தனிப்பட்ட முறையில் வெளியனுப்புவதில்.
எனவே இப்போது நாம் பூனை students.txt வேண்டும்
| வகையான | uniq.
இறுதியாக, நாம் ஒரு வகையில் குழாய் வெளியீடு சேமிக்க முடியும்
மாதிரி | | uniq பூனை students.txt வழியாக கோப்பு
> Final.txt.
நாம் final.txt திறந்து என்றால், நாம் அவை சரியாக என்ன வேண்டும்
பார்க்க:
அகரவரிசையில் தனிப்பட்ட பெயர்கள் பட்டியலை,
ஒரு உரை கோப்பில் சேமிக்கப்படும்.
மூலம், நாம் மேலும் கூறினார் வகையான <
students.txt | uniq> final.txt செய்ய சரியாக
நாம் பார்த்த ஆபரேட்டர்கள் ஒவ்வொரு பயன்படுத்தி அதையே,
இந்த வீடியோ.
>> என் பெயர் டாமி, மற்றும் இந்த CS50 உள்ளது.