ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 3 · 2లో పాఠం 2కోర్సులో 7/11~15 min
మాడ్యూల్ పాఠాలు (2/2)

పైప్‌లైన్‌లు మరియు ఫిల్టర్‌లు (grep మరియు |)

Linux కమాండ్ లైన్ యొక్క అత్యంత శక్తివంతమైన లక్షణాలలో ఒకటి విభిన్న ఆదేశాలను కనెక్ట్ చేయగల సామర్థ్యం, ​​తద్వారా ఒకదాని యొక్క అవుట్‌పుట్ తదుపరి దానికి ఇన్‌పుట్ అవుతుంది. ఈ సాంకేతికత పైప్‌లైన్‌లు ఉపయోగించి సాధించబడుతుంది మరియు సాధారణంగా టెక్స్ట్-ఫిల్టరింగ్ కమాండ్ **grep**తో జత చేయబడుతుంది.


వడపోత వచనం: grep

grep (గ్లోబల్ రెగ్యులర్ ఎక్స్‌ప్రెషన్ ప్రింట్) కమాండ్ ఒకటి లేదా అంతకంటే ఎక్కువ ఫైల్‌లలోని నిర్దిష్ట స్ట్రింగ్ టెక్స్ట్ కోసం శోధిస్తుంది మరియు సరిపోలే పంక్తులను ప్రింట్ చేస్తుంది:

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లోడ్ అవుతోంది...

'ERROR' (కేస్-సెన్సిటివ్) అనే పదాన్ని కలిగి ఉన్న పంక్తులను మాత్రమే సంగ్రహించడానికి మరియు ప్రదర్శించడానికి 'logs/server.log' ఫైల్‌ను ఫిల్టర్ చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

శోధించడానికి పదం మరియు ఫైల్ పాత్‌ను అనుసరించి grep ఆదేశాన్ని ఉపయోగించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం 2: పైప్‌లైన్‌లు మరియు ఫిల్టర్‌లు

వ్యాయామం#linux.m3.l2.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

'logs/server.log' ఫైల్‌ను చదవడానికి cat కమాండ్‌ను ఉపయోగించండి మరియు 'హెచ్చరిక' అనే పదాన్ని కలిగి ఉన్న పంక్తులను మాత్రమే ఫిల్టర్ చేయడానికి మరియు ప్రింట్ చేయడానికి దాని అవుట్‌పుట్ (|)ని grep కమాండ్‌కి పైప్ చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

క్యాట్ లాగ్‌లు/సర్వర్.లాగ్‌ను గ్రెప్‌కి కనెక్ట్ చేయండి '|' పైప్‌ని ఉపయోగించి హెచ్చరిక పాత్ర.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం 3: కేస్-సెన్సిటివ్ శోధన

వ్యాయామం#linux.m3.l2.e3
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

తగిన grep ఫ్లాగ్‌ని ఉపయోగించి 'logs/access.log' ఫైల్‌లో 'post' (పెద్ద అక్షరం లేదా చిన్న అక్షరం) ఉన్న అన్ని పంక్తుల కోసం శోధించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

కేస్ సెన్సిటివిటీని విస్మరించడానికి -i ఎంపికతో grep ఉపయోగించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది