முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 3 · பாடம் 2 இன் 2பாடத்திட்டத்தில் 7/11~15 min
தொகுதி பாடங்கள் (2/2)

பைப்லைன்கள் மற்றும் வடிகட்டிகள் (grep மற்றும் |)

லினக்ஸ் கட்டளை வரியின் மிகவும் சக்திவாய்ந்த அம்சங்களில் ஒன்று வெவ்வேறு கட்டளைகளை இணைக்கும் திறன் ஆகும், இதனால் ஒன்றின் வெளியீடு அடுத்ததுக்கான உள்ளீடாக மாறும். இந்த நுட்பம் பைப்லைன்கள் பயன்படுத்தி நிறைவேற்றப்படுகிறது மற்றும் பொதுவாக grep உரை-வடிகட்டுதல் கட்டளையுடன் இணைக்கப்படுகிறது.


வடிகட்டுதல் உரை: grep

grep (Global Regular Expression Print) கட்டளையானது, ஒன்று அல்லது அதற்கு மேற்பட்ட கோப்புகளுக்குள் ஒரு குறிப்பிட்ட ஸ்டிரிங் உரையைத் தேடி, பொருந்தும் வரிகளை அச்சிடுகிறது:

Bash
grep "string" [file_name]

grepக்கான பயனுள்ள விருப்பங்கள்

  • grep -i "error" server.log: கேஸ்-சென்சிட்டிவ் தேடலைச் செய்கிறது (பெரிய எழுத்துக்கும் சிற்றெழுத்துக்கும் உள்ள வித்தியாசத்தைப் புறக்கணித்து, "பிழை", "பிழை" அல்லது "பிழை" என்பதைக் கண்டறியும்).
  • grep -n "connection" server.log: பொருந்தும் வரியுடன் வரி எண்ணை காட்டுகிறது.
  • grep -v "INFO" server.log: தலைகீழ் தேடலை, ​​இல்லை குறிப்பிடப்பட்ட முக்கிய சொல்லைக் கொண்டிருக்கும் வரிகளை மட்டும் காண்பிக்கும்.

சங்கிலி கட்டளைகள்: பைப்லைன் |

பைப்லைன் ஆபரேட்டர் | செங்குத்து பட்டியால் குறிக்கப்படுகிறது. இது இடதுபுறத்தில் உள்ள கட்டளையின் நிலையான வெளியீட்டை வலதுபுறத்தில் உள்ள கட்டளையின் நிலையான உள்ளீட்டிற்கு நேரடியாக அனுப்புகிறது:

Bash
[command1] | [command2]

உதாரணமாக, ஒரு பதிவுக் கோப்பு பெரியதாக இருந்தால், முழு கோப்பையும் அச்சிடாமல் ஒரு குறிப்பிட்ட வார்த்தையைத் தேட விரும்பினால், நீங்கள் cat மற்றும் grep ஐ இணைக்கலாம்:

Bash
cat logs/server.log | grep ERROR

இது server.log கோப்பை cat உடன் படிக்கிறது, ஆனால் அதைத் திரையில் அச்சிடுவதற்குப் பதிலாக, ஸ்ட்ரீமை grep க்கு அனுப்புகிறது, இது "ERROR" என்ற வார்த்தையைக் கொண்ட வரிகளை மட்டும் வடிகட்டி காண்பிக்கும்.


பயன்பாட்டு எடுத்துக்காட்டுகள் மற்றும் பொதுவான பிழைகள்

பெரிய எழுத்தில் (எ.கா. "POST") மட்டுமே உள்ள கோப்பில் சிற்றெழுத்து வார்த்தையை (எ.கா. "போஸ்ட்") தேடினால், grep எதையும் தராது:

Bash
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)

கோட்டின் வழக்கைப் பொருட்படுத்தாமல் அதைக் கண்டுபிடிக்க, -i கொடியைப் பயன்படுத்தவும்:

Bash
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234

குறிப்பிட்ட கோப்பு இல்லை என்றால், grep பிழையை வழங்கும்:

Bash
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directory

நீங்களே முயற்சி செய்து பாருங்கள்

பயிற்சி 1: பதிவு கோப்புகளில் பிழைகளைத் தேடுங்கள்

உடற்பயிற்சி#linux.m3.l2.e1
முயற்சிகள்: 0ஏற்றுகிறது…

பிரித்தெடுக்க 'logs/server.log' கோப்பை வடிகட்டவும், 'ERROR' (கேஸ்-சென்சிட்டிவ்) என்ற வார்த்தை உள்ள வரிகளை மட்டும் காட்டவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

grep கட்டளையைப் பயன்படுத்தவும், அதைத் தொடர்ந்து வார்த்தை மற்றும் கோப்பு பாதையைத் தேடவும்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

பயிற்சி 2: குழாய்கள் மற்றும் வடிகட்டிகள்

உடற்பயிற்சி#linux.m3.l2.e2
முயற்சிகள்: 0ஏற்றுகிறது…

'logs/server.log' கோப்பைப் படிக்க cat கட்டளையைப் பயன்படுத்தவும், அதன் வெளியீட்டை grep கட்டளைக்கு குழாய் (|) செய்து 'எச்சரிக்கை' என்ற வார்த்தை உள்ள வரிகளை மட்டும் வடிகட்டி அச்சிடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

cat logs/server.logஐ grep உடன் இணைக்கவும் '|' பைப்பைப் பயன்படுத்தி எச்சரிக்கை பாத்திரம்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

பயிற்சி 3: கேஸ்-சென்சிட்டிவ் தேடல்

உடற்பயிற்சி#linux.m3.l2.e3
முயற்சிகள்: 0ஏற்றுகிறது…

பொருத்தமான grep கொடியைப் பயன்படுத்தி 'logs/access.log' கோப்பில் 'post' (பெரிய எழுத்து அல்லது சிறிய எழுத்து) உள்ள அனைத்து வரிகளையும் தேடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

கேஸ் சென்சிட்டிவிட்டியை புறக்கணிக்க -i விருப்பத்துடன் grep ஐப் பயன்படுத்தவும்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்