`Sed` ఆదేశాన్ని ఉపయోగించి బహుళ పంక్తులను ఎలా భర్తీ చేయాలి

How Replace Multiple Lines Using Sed Command



కొన్నిసార్లు ఫైల్ యొక్క బహుళ పంక్తులను ఏదైనా ప్రత్యేక అక్షరం లేదా వచనంతో భర్తీ చేయడం అవసరం. ఫైల్ యొక్క బహుళ పంక్తులను భర్తీ చేయడానికి లైనక్స్‌లో విభిన్న ఆదేశాలు ఉన్నాయి. ఈ రకమైన పనిని చేయడానికి వాటిలో `సెడ్` కమాండ్ ఒకటి. `సెడ్` యొక్క పూర్తి రూపం ఆవిరి ఎడిటర్, మరియు ఇది ప్రధానంగా సాధారణ వ్యక్తీకరణను ఉపయోగించడం ద్వారా వచనాన్ని వివిధ మార్గాల్లో చదవడానికి మరియు మార్చడానికి ఉపయోగించబడుతుంది. ఫైల్ యొక్క బహుళ పంక్తులను వివిధ మార్గాల్లో భర్తీ చేయడానికి ఈ ఆదేశాన్ని ఎలా ఉపయోగించవచ్చో ఈ ట్యుటోరియల్‌లో వివరించబడింది.

సాధారణంగా ఉపయోగించే `సెడ్ 'చీట్ షీట్:

`Sed` ఆదేశంలో సాధారణంగా ఉపయోగించే అక్షరాలు క్రింది పట్టికలో వివరించబడ్డాయి.







పాత్ర ప్రయోజనం
కు ఇది కంటెంట్‌ను జోడించడానికి ఉపయోగించబడుతుంది.
బి ఇది శాఖల కంటెంట్ కోసం ఉపయోగించబడుతుంది.
c ఇది కంటెంట్ మార్చడానికి ఉపయోగించబడుతుంది.
డి ఇది ఫైల్ యొక్క లైన్‌ను తొలగించడానికి ఉపయోగించబడుతుంది.
డి ఇది ఫైల్ యొక్క మొదటి పంక్తిని తొలగించడానికి ఉపయోగించబడుతుంది.
g ఇది హోల్డింగ్ టెక్స్ట్ నుండి కాపీ చేయడానికి ఉపయోగించబడుతుంది.
జి హోల్డింగ్ టెక్స్ట్ నుండి జోడించడానికి ఇది ఉపయోగించబడుతుంది.
h హోల్డింగ్ టెక్స్ట్‌లో కాపీ చేయడానికి ఇది ఉపయోగించబడుతుంది.
హెచ్ హోల్డింగ్ టెక్స్ట్‌కి జోడించడానికి ఇది ఉపయోగించబడుతుంది.
i ఇది చొప్పించడానికి ఉపయోగించబడుతుంది.
నేను ఇది ప్రత్యామ్నాయ పంక్తిని ముద్రించడానికి ఉపయోగించబడుతుంది.
ఎన్ ఇది తదుపరి లైన్‌కు వెళ్లడానికి ఉపయోగించబడుతుంది.
ఎన్ తదుపరి ఇన్‌పుట్ లైన్‌ను జోడించడానికి ఇది ఉపయోగించబడుతుంది.
p ఇది ముద్రించడానికి ఉపయోగించబడుతుంది.
పి ఇది మొదటి పంక్తిని ముద్రించడానికి ఉపయోగించబడుతుంది.
ఏమి ఇది నిష్క్రమించడానికి ఉపయోగించబడుతుంది.
ప్ర ఇది వెంటనే నిష్క్రమించడానికి ఉపయోగించబడుతుంది.
ఆర్ ఇది ఫైల్‌ను చదవడానికి ఉపయోగించబడుతుంది.
ఆర్ ఇది ఫైల్ నుండి లైన్ చదవడానికి ఉపయోగించబడుతుంది.
లు ఇది ప్రత్యామ్నాయంగా ఉపయోగించబడుతుంది.
t ఇది ప్రత్యామ్నాయం కోసం పరీక్షించడానికి ఉపయోగించబడుతుంది.
టి ఇది ప్రత్యామ్నాయం లేకుండా పరీక్షించడానికి ఉపయోగించబడుతుంది.
లో ఇది ఫైల్‌కు వ్రాయడానికి ఉపయోగించబడుతుంది.
IN ఫైల్‌కు ఒక లైన్ రాయడానికి ఇది ఉపయోగించబడుతుంది.
x ఇది నమూనాలను మార్చుకోవడానికి మరియు పట్టుకోవడానికి ఉపయోగించబడుతుంది.
మరియు ఇది అనువదించడానికి ఉపయోగించబడుతుంది.
తో ఇది లైన్ క్లియర్ చేయడానికి ఉపయోగించబడుతుంది.
'=' ఇది లైన్ నంబర్ ప్రింట్ చేయడానికి ఉపయోగించబడుతుంది.

టెర్మినల్ నుండి `sed` ఆదేశాన్ని ఉపయోగించి బహుళ పంక్తులను భర్తీ చేయండి:

టెర్మినల్ నుండి ఒక ఫైల్ నుండి బహుళ పంక్తులను భర్తీ చేయడానికి `సెడ్` ఆదేశాన్ని ఎలా ఉపయోగించవచ్చో ఈ ట్యుటోరియల్‌లో ఈ భాగంలో చూపబడింది. అనే ఫైల్‌ను సృష్టించండి sed.txt కింది కంటెంట్‌తో ఈ భాగం యొక్క ఆదేశాలను పరీక్షించండి.



sed.txt



సెడ్ యొక్క పూర్తి రూపం స్ట్రీమ్ ఎడిటర్.





ఇది యునిక్స్ యుటిలిటీ, ఇది టెక్స్ట్‌ను వేరే ఫార్మాట్‌లో చదవడానికి మరియు మార్చడానికి ఉపయోగించబడుతుంది.

దీనిని లీ E. మక్ మహోన్ అభివృద్ధి చేశారు.



ఇది టెక్స్ట్ ప్రాసెసింగ్ కోసం ఉపయోగించబడుతుంది.

ఇది సాధారణ వ్యక్తీకరణలకు మద్దతు ఇస్తుంది.

ఉదాహరణ -1: రెండు వరుస లైన్లను భర్తీ చేయండి

కింది `సెడ్` కమాండ్ రెండు వరుస లైన్‌లను మరొక లైన్‌తో భర్తీ చేస్తుంది. ఇక్కడ, -z ఆప్షన్ రీప్లేస్‌మెంట్ టెక్స్ట్‌ను జోడించే ముందు వరుస లైన్‌లను శూన్య డేటాతో భర్తీ చేయడానికి ఉపయోగించబడుతుంది. ఆదేశం ప్రకారం, 3rdమరియు 4ఫైల్ యొక్క పంక్తులు టెక్స్ట్ ద్వారా భర్తీ చేయబడతాయి, 'ఇది చాలా ఉపయోగకరమైన సాధనం' .

$పిల్లిsed.txt
$సెడ్ -తో 's/దీనిని లీ E. మక్ మహోన్ అభివృద్ధి చేశారు. n ఇది టెక్స్ట్ కోసం ఉపయోగించబడుతుంది
ప్రాసెసింగ్./ఇది చాలా ఉపయోగకరమైన సాధనం ./ '
sed.txt

ఆదేశాలను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ఉదాహరణ -2: మ్యాచ్ మరియు గ్లోబల్ జెండా ఆధారంగా బహుళ పంక్తులను భర్తీ చేయండి

కింది `సెడ్` కమాండ్ పదంతో ప్రారంభమయ్యే అన్ని పంక్తులను భర్తీ చేస్తుంది, 'ఇది' పదం ద్వారా, ' ఈ లైన్ భర్తీ చేయబడింది '.

$పిల్లిsed.txt
$సెడ్ 's/^ఇది.*/ఈ లైన్ భర్తీ చేయబడింది/g'sed.txt

ఆదేశాలను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. మూడు పంక్తులు 'అనే పదాన్ని కలిగి ఉంటాయి ఇది 'ఫైల్‌లో. కాబట్టి, ఈ పంక్తులు భర్తీ టెక్స్ట్ ద్వారా భర్తీ చేయబడ్డాయి.

ఉదాహరణ -3: మ్యాచ్ మరియు తదుపరి-లైన్ ఆదేశం ఆధారంగా బహుళ పంక్తులను భర్తీ చేయండి

కింది `సెడ్` కమాండ్ పదాన్ని భర్తీ చేస్తుంది, ' ఉంది 'పదం ద్వారా,' ఉంది 'తదుపరి-లైన్ ఆదేశంతో,' n '.

$పిల్లిsed.txt
$సెడ్ '{n;/is/{s/is/was/}}'sed.txt

ఆదేశాలను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. ఇక్కడ, 'ఉంది' 2 లో ఉందిndమరియు 4ఫైల్ యొక్క పంక్తులు, మరియు ఈ పంక్తులు పదం ద్వారా సవరించబడ్డాయి 'ఉంది' .

`Sed` స్క్రిప్ట్ ఫైల్‌ను సృష్టించడం ద్వారా బహుళ పంక్తులను భర్తీ చేయండి:

మునుపటి ఉదాహరణలలో, `సెడ్` ఆదేశాలు టెర్మినల్ నుండి అమలు చేయబడ్డాయి. కానీ ఇది స్క్రిప్టింగ్ లాంగ్వేజ్, మరియు స్క్రిప్ట్ బహుళ స్టేట్‌మెంట్‌లను కలిగి ఉంటే, స్క్రిప్ట్‌తో ఒక సెడ్ ఫైల్‌ను సృష్టించడం మంచిది. అనే టెక్స్ట్ ఫైల్‌ని సృష్టించండి విద్యార్థులు. టెక్స్ట్ కింది కంటెంట్‌తో `సెడ్` స్క్రిప్ట్ వర్తించబడుతుంది.

విద్యార్థులు. టెక్స్ట్

ID: 111045
పేరు: రాబర్ట్
విభాగం: CSE
బ్యాచ్: 35

ID: 111876
పేరు: జోసెఫ్
విభాగం: BBA
బ్యాచ్: 27

ID: 111346
పేరు: విలియం
విభాగం: CSE
బ్యాచ్: 45

ID: 111654
పేరు: చార్లెస్
విభాగం: EEE
బ్యాచ్: 41

ID: 111346
పేరు: జాన్
విభాగం: CSE
బ్యాచ్: 25

ID: 111746
పేరు: థామస్
విభాగం: CSE
బ్యాచ్: 15

ఉదాహరణ -4: `సెడ్` స్క్రిప్ట్ ఫైల్‌ని ఉపయోగించి ఫైల్ యొక్క బహుళ పంక్తులను భర్తీ చేయండి

అనే పేరుతో ఒక సెడ్ ఫైల్‌ను సృష్టించండి భర్తీ చేయబడింది శోధన నమూనా ఆధారంగా బహుళ పంక్తులను భర్తీ చేయడానికి క్రింది కంటెంట్‌తో. ఇక్కడ, పదం ' CSE ‘టెక్స్ట్ ఫైల్‌లో సెర్చ్ చేయబడుతుంది, ఒకవేళ మ్యాచ్ ఉంటే, అది మళ్లీ 35 మరియు 15 నంబర్‌ని సెర్చ్ చేస్తుంది. రెండో మ్యాచ్ ఫైల్‌లో ఉన్నట్లయితే, అది 45 వ నంబర్ ద్వారా భర్తీ చేయబడుతుంది.

భర్తీ చేయబడింది

/CSE/ {
p; n;
/35/ {
లు/35/నాలుగు ఐదు/;
p; d;
}
/పదిహేను/ {
లు/పదిహేను/55/;
p; d;
}
}
p;

ఫైల్ యొక్క ప్రస్తుత కంటెంట్‌ను తనిఖీ చేయడానికి కింది ఆదేశాన్ని అమలు చేయండి. టెక్స్ట్ ఫైల్‌లో ‘CSE’ నాలుగు సార్లు కనిపించింది. 35 మరియు 15 రెండు ప్రదేశాలలో ఉన్నాయి.

$పిల్లివిద్యార్థులు. టెక్స్ట్

కింది ఆదేశం సెడ్ స్క్రిప్ట్ ఆధారంగా బహుళ పంక్తుల కంటెంట్‌ను భర్తీ చేస్తుంది.

$సెడ్ -n -fభర్తీ. విద్యార్థులు. టెక్స్ట్

ఆదేశాన్ని అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ముగింపు

ఈ ట్యుటోరియల్‌లో `సెడ్` ఆదేశాన్ని ఉపయోగించి బహుళ పంక్తులు లేదా బహుళ పంక్తుల కంటెంట్‌ను మార్చడానికి వివిధ మార్గాలు చూపబడ్డాయి. సెడ్ ఫైల్ నుండి `సెడ్ 'స్క్రిప్ట్ ఎలా అమలు చేయబడుతుందనేది కూడా ఈ ట్యుటోరియల్‌లో చూపబడింది. ఈ ట్యుటోరియల్ `సెడ్` ఆదేశాన్ని ఉపయోగించి ఏదైనా ఫైల్ యొక్క బహుళ పంక్తులను భర్తీ చేయడానికి రీడర్‌కి సహాయపడుతుందని నేను ఆశిస్తున్నాను.