15 Awọn imọran pipaṣẹ sed wulo ati Awọn ẹtan fun Awọn iṣẹ-ṣiṣe Isakoso System Lainos ojoojumọ


Gbogbo olutọsọna eto ni lati ṣe pẹlu awọn faili ọrọ lasan ni ojoojumọ. Mọ bi o ṣe le wo awọn apakan kan, bii o ṣe le rọpo awọn ọrọ, ati bii o ṣe le ṣe idanimọ akoonu lati awọn faili wọnyẹn jẹ awọn ọgbọn ti o nilo lati ni ọwọ laisi nini ṣiṣe wiwa Google kan.

Ninu nkan yii a yoo ṣe atunyẹwo sed, olootu ṣiṣan olokiki, ati pin awọn imọran 15 lati lo o lati le ṣaṣeyọri awọn ibi-afẹde ti a mẹnuba tẹlẹ, ati diẹ sii.

1. Wiwo ibiti awọn ila ti iwe kan

Awọn irinṣẹ bii ori ati iru gba wa laaye lati wo isalẹ tabi oke faili kan. Kini ti a ba nilo lati wo abala kan ni aarin? Onigbọwọ ọkan ti n tẹle yoo pada awọn ila 5 si 10 lati myfile.txt:

# sed -n '5,10p' myfile.txt

2. Wiwo gbogbo faili ayafi ibiti a fifun

Ni apa keji, o ṣee ṣe pe o fẹ lati tẹ gbogbo faili naa ayafi ti iwọn kan. Lati ṣe iyasọtọ awọn ila 20 si 35 lati myfile.txt, ṣe:

# sed '20,35d' myfile.txt

3. Wiwo awọn ila ti kii ṣe itẹlera ati awọn sakani

O ṣee ṣe pe o nifẹ ninu ṣeto ti awọn ila ti kii ṣe itẹlera, tabi ni ibiti o ju ọkan lọ. Jẹ ki a ṣe afihan awọn ila 5-7 ati 10-13 lati myfile.txt:

# sed -n -e '5,7p' -e '10,13p' myfile.txt

Bi o ti le rii, aṣayan -e gba wa laaye lati ṣe iṣe ti a fun (ninu ọran yii, awọn ila titẹ) fun sakani kọọkan.

4. Rirọpo awọn ọrọ tabi awọn kikọ (aropo ipilẹ)

Lati ropo gbogbo apeere ti ọrọ version pẹlu itan ni myfile.txt, ṣe:

# sed 's/version/story/g' myfile.txt

Ni afikun, o le fẹ lati ronu nipa lilo gi dipo g lati le foju kọ ọran ohun kikọ silẹ:

# sed 's/version/story/gi' myfile.txt

Lati rọpo awọn alafo pupọ pẹlu aaye kan, a yoo lo iṣujade ti ip ipa ọna ifihan ati opo gigun ti epo kan:

# ip route show | sed 's/  */ /g'

Ṣe afiwe iṣujade ti ip ipa ọna ipasẹ pẹlu ati laisi opo gigun ti epo:

5. Rirọpo awọn ọrọ tabi awọn kikọ inu ibiti o wa

Ti o ba nifẹ si rirọpo awọn ọrọ nikan laarin ibiti laini kan (30 si 40, fun apẹẹrẹ), o le ṣe:

# sed '30,40 s/version/story/g' myfile.txt

Nitoribẹẹ, o le tọka laini kan nipasẹ nọmba ti o baamu dipo ibiti o wa.

6. Lilo awọn ifihan deede (aropo to ti ni ilọsiwaju) - I

Nigbakan awọn faili iṣeto ni fifuye pẹlu awọn asọye. Lakoko ti eyi jẹ iwulo wulo, o le jẹ iranlọwọ lati ṣe afihan awọn itọsọna iṣeto nikan nigbakan ti o ba fẹ lati wo gbogbo wọn ni oju kan.

Lati yọ awọn ila ofo tabi awọn ti o bẹrẹ pẹlu # lati faili iṣeto Apache, ṣe:

# sed '/^#\|^$\| *#/d' httpd.conf

Ami abojuto ti atẹle nọmba ami (^#) tọka ibẹrẹ ila kan, lakoko ti ^$ duro fun awọn ila laini. Awọn ifi inaro tọka awọn iṣẹ boole, lakoko ti o ti lo din ku sẹhin lati sa fun awọn ifi inaro.

Ni ọran pataki yii, faili iṣeto Apagbe ni awọn ila pẹlu # ’s kii ṣe ni ibẹrẹ awọn ila kan, nitorinaa a lo * # lati yọ awọn naa daradara.

7. Lilo awọn ifihan deede (aropo ilọsiwaju) - II

Lati ropo ọrọ ti o bẹrẹ pẹlu lẹta nla tabi kekere pẹlu ọrọ miiran, a tun le lo sed. Lati ṣalaye, jẹ ki a rọpo ọrọ zip tabi Zip pẹlu rar ninu myfile.txt:

# sed 's/[Zz]ip/rar/g' myfile.txt

8. Wiwo awọn ila ti o ni pẹlu apẹrẹ ti a fun

Lilo miiran ti sed ni ninu titẹ awọn ila lati faili kan ti o baamu ikosile deede. Fun apẹẹrẹ, a le nifẹ lati wo asẹ ati awọn iṣẹ ijẹrisi ti o waye ni Oṣu Keje 2, bi fun/var/log/log log in a CentOS 7 server.

Ni ọran yii, apẹẹrẹ lati wa ni Oṣu Keje 2 ni ibẹrẹ ti ila kọọkan:

# sed -n '/^Jul  1/ p' /var/log/secure

9. Fifi sii awọn alafo ninu awọn faili

Pẹlu sed, a tun le fi awọn aye sii (awọn ila laini) fun laini ti ko ṣofo kọọkan ninu faili kan. Lati fi sii laini ofo kan ni gbogbo ila miiran ni Iwe-aṣẹ, faili ọrọ lasan, ṣe:

# sed G myfile.txt

Lati fi sii awọn ila ofo meji, ṣe:

# sed 'G;G' myfile.txt

Ṣafikun oke G ti o ya sọtọ nipasẹ semicolon kan ti o ba fẹ ṣafikun awọn ila laini diẹ sii. Aworan ti o tẹle n ṣe apejuwe apẹẹrẹ ti a ṣe ilana ninu abawọn yii:

Imọran yii le wa ni ọwọ ti o ba fẹ ṣayẹwo faili iṣeto nla kan. Fifi sii aaye ofo ni gbogbo laini miiran ati fifa ohun elo si kere si yoo mu ki iriri kika ọrẹ diẹ sii.

10. Emulating dos2unix pẹlu ṣiṣatunkọ opopo

Eto dos2unix yi awọn faili ọrọ pẹtẹlẹ pada lati ọna kika Windows/Mac si Unix/Linux, yiyọ awọn ohun kikọ tuntun tuntun ti o fi sii nipasẹ diẹ ninu awọn olootu ọrọ ti a lo ninu awọn iru ẹrọ wọnyẹn. Ti ko ba fi sori ẹrọ ni eto Linux rẹ, o le farawe iṣẹ rẹ pẹlu sed dipo fifi sori ẹrọ.

Ni aworan ni apa osi a le rii ọpọlọpọ awọn ohun kikọ tuntun DOS (^M) , eyiti a yọ kuro nigbamii pẹlu:

# sed -i 's/\r//' myfile.txt

Jọwọ ṣe akiyesi pe aṣayan -i tọka ṣiṣatunṣe ibi-aye. Lẹhinna awọn ayipada ko ni pada si iboju, ṣugbọn yoo wa ni fipamọ si faili naa.

Akiyesi: O le fi awọn kikọ tuntun DOS sii lakoko ṣiṣatunkọ faili kan ni olootu vim pẹlu Ctrl + V ati Ctrl + M .

11. Ṣiṣatunṣe ibi-ati fifipamọ faili atilẹba

Ninu aba ti tẹlẹ a lo sed lati yipada faili kan ṣugbọn ko fipamọ faili atilẹba. Nigbakan o jẹ imọran ti o dara lati fipamọ daakọ afẹyinti ti faili atilẹba ni ọran kan.

Lati ṣe eyi, tọka suffix kan tẹle aṣayan -i (inu awọn agbasọ ẹyọkan) lati lo lati fun lorukọ faili atilẹba.

Ninu apẹẹrẹ atẹle a yoo rọpo gbogbo awọn iṣẹlẹ ti eleyi tabi Eyi (foju fo ọran) pẹlu iyẹn ni myfile.txt, ati pe a yoo fi faili atilẹba pamọ bi myfile.txt.orig.

Lakotan, a yoo lo iwulo anfani lati ṣe idanimọ awọn iyatọ laarin awọn faili mejeeji:

# sed -i'.orig' 's/this/that/gi' myfile.txt

12. Yiyi awọn ọrọ meji

Jẹ ki a ro pe o ni faili kan ti o ni awọn orukọ kikun ni ọna kika Akọkọ orukọ, Orukọ idile. Lati ṣe ilana faili to peye, o le fẹ lati yipada orukọ idile ati orukọ Akọkọ.

A le ṣe iyẹn pẹlu sed ni irọrun ni irọrun:

# sed 's/^\(.*\),\(.*\)$/\, /g' names.txt

Ni aworan loke a le rii pe awọn akọmọ, ti o jẹ awọn ami pataki, nilo lati sa asala, bii awọn nọmba 1 ati 2 ṣe.

Awọn nọmba wọnyi ṣe aṣoju awọn ifihan deede ti a ṣe afihan (eyiti o nilo lati han ninu awọn akọmọ):

  1. 1 duro fun ibẹrẹ ti ila kọọkan titi di aami idẹsẹ.
  2. 2 jẹ olutọju aaye fun ohun gbogbo ti o tọ si ti aami idẹsẹ si opin ila naa.

O wu ti o fẹ jẹ itọkasi ni ọna kika SecondColumn (Orukọ idile) + koma + aaye + Akọkọ iwe akọkọ (Orukọ akọkọ). Lero ọfẹ lati yi pada si ohunkohun ti o fẹ.

13. Rirọpo awọn ọrọ nikan ti a ba rii ibaramu ọtọ

Nigbakan rirọpo gbogbo awọn apeere ti ọrọ ti a fun, tabi diẹ laileto, kii ṣe deede ohun ti a nilo. Boya a nilo lati ṣe aropo ti o ba rii ibaramu ọtọ.

Fun apẹẹrẹ, a le fẹ lati rọpo ibẹrẹ pẹlu iduro nikan ti a ba rii awọn iṣẹ ọrọ ni laini kanna. Ni oju iṣẹlẹ yẹn, eyi ni ohun ti yoo ṣẹlẹ:

We need to start partying at work,
but let’s remember to start all services first.

Ni laini akọkọ, ibẹrẹ kii yoo rọpo pẹlu iduro nitori awọn iṣẹ ọrọ ko han ni laini yẹn, ni ilodi si laini keji.

# sed '/services/ s/start/stop/g' msg.txt

14. Ṣiṣe awọn aropo meji tabi diẹ sii lẹẹkan

O le ṣopọ awọn rọpo meji tabi diẹ sii ọkan aṣẹ sed kan nikan. Jẹ ki a rọpo awọn ọrọ naa ati laini ni myfile.txt pẹlu Eyi ati ẹsẹ, lẹsẹsẹ.

Akiyesi bawo ni a ṣe le ṣe nipa lilo pipaṣẹ rirọpo sedede lasan atẹle pẹlu semicolon ati aṣẹ rirọpo keji:

# sed -i 's/that/this/gi;s/line/verse/gi' myfile.txt

A ṣe apejuwe sample yii ni aworan atẹle:

15. Pipọpọ sed ati awọn ofin miiran

Nitoribẹẹ, sed le ni idapọ pẹlu awọn irinṣẹ miiran lati ṣẹda awọn ofin ti o ni agbara diẹ sii. Fun apẹẹrẹ, jẹ ki a lo apẹẹrẹ ti a fun ni TIP # 4 ki o si jade adirẹsi IP wa lati abajade ti ip ipa pipaṣẹ.

A yoo bẹrẹ nipa titẹjade laini nikan nibiti ọrọ src wa. Lẹhinna a yoo yi awọn aaye pupọ pada si ọkan kan. Lakotan, a yoo ge aaye 9th (ṣe akiyesi aye kan bi oluyapa aaye), eyiti o jẹ ibiti adiresi IP wa:

# ip route show | sed -n '/src/p' | sed -e 's/  */ /g' | cut -d' ' -f9

Aworan ti o wa ni isalẹ ṣe apejuwe igbesẹ kọọkan ti aṣẹ loke:

Akopọ

Ninu itọsọna yii a ti pin awọn imọran sed sed 15 ati awọn ẹtan lati ṣe iranlọwọ fun ọ pẹlu awọn iṣẹ iṣakoso eto ojoojumọ rẹ. Ṣe imọran miiran wa ti o lo ni igbagbogbo ati pe yoo fẹ lati pin pẹlu wa ati iyoku agbegbe?

Ti o ba bẹ bẹ, ni ominira lati jẹ ki a mọ nipa lilo fọọmu asọye ni isalẹ. Awọn ibeere ati awọn asọye tun kaabo - a nireti lati gbọ lati ọdọ rẹ!


Gbogbo awọn Ẹtọ wa ni ipamọ. © Linux-Console.net • 2019-2024