Bii o ṣe le Lo Awk ati Awọn ifọrọhan Deede lati ṣe Ajọ Ọrọ tabi Okun ni Awọn faili
Nigba ti a ba n ṣiṣẹ awọn ofin kan ni Unix/Linux lati ka tabi ṣatunkọ ọrọ lati okun tabi faili kan, a ma n gbiyanju pupọ julọ lati ṣe àlẹmọ iṣẹjade si apakan ti a fun ni anfani. Eyi ni ibiti lilo awọn ikede deede wa ni ọwọ.
A le ṣe alaye ikosile deede bi awọn okun ti o ṣe aṣoju ọpọlọpọ awọn kikọ ti awọn kikọ. Ọkan ninu awọn ohun ti o ṣe pataki julọ nipa awọn ikede deede ni pe wọn gba ọ laaye lati ṣajọ iṣẹjade aṣẹ tabi faili, ṣatunkọ apakan ti ọrọ kan tabi faili iṣeto ati bẹbẹ lọ.
Awọn ifihan deede jẹ ti:
- Awọn ohun kikọ deede bi aaye, tẹnumọ (_), AZ, a-z, 0-9.
- Awọn ohun kikọ Meta ti o fẹ si awọn kikọ lasan, wọn pẹlu:
-
(.) o baamu pẹlu eyikeyi ohun kikọ ayafi laini tuntun kan.
-
(*)
o baamu pẹlu awọn aye tabi diẹ sii awọn aye ti ohun kikọ lẹsẹkẹsẹ ti o ṣaju rẹ. -
[ohun kikọ (s)]
o baamu eyikeyi ọkan ninu awọn ohun kikọ ti a ṣalaye ninu awọn ohun kikọ (s), ẹnikan tun le lo ami-ọrọ kan(-)
lati tumọ si ibiti ti awọn kikọ bii[af]
,[1-5]
, ati bẹbẹ lọ. -
^
o baamu ni ibẹrẹ ila kan ninu faili kan. -
$
baamu opin ila ni faili kan. -
\
o jẹ iwa abayo.
Lati le ṣe àlẹmọ ọrọ, ẹnikan ni lati lo irinṣẹ sisẹ ọrọ bii awk. O le ronu ti awk bi ede siseto ti tirẹ. Ṣugbọn fun opin ti itọsọna yii si lilo awk, a yoo bo o bi ọpa sisẹ laini aṣẹ pipaṣẹ kan.
Iṣeduro gbogbogbo ti awk ni:
# awk 'script' filename
Nibo
akosile
jẹ ipilẹ awọn ofin ti o yeye nipasẹ awk ati pe o ṣiṣẹ lori faili, orukọ faili.O ṣiṣẹ nipa kika ila ti a fun ni faili naa, ṣe ẹda ti laini ati lẹhinna ṣiṣẹ iwe afọwọkọ lori laini naa. Eyi tun ṣe lori gbogbo awọn ila inu faili naa.
Awọn
akosile
wa ni fọọmu/apẹrẹ/igbese
nibiti apẹẹrẹ jẹ ikosile deede ati iṣe jẹ ohun ti awk yoo ṣe nigbati o ba rii ilana ti a fun ni laini kan.Bii o ṣe le Lo Irinṣẹ Sisọ Awk ni Lainos
Ninu awọn apẹẹrẹ atẹle, a yoo fojusi awọn ohun kikọ meta ti a jiroro loke labẹ awọn ẹya ti awk.
Apẹẹrẹ ti o wa ni isalẹ tẹ gbogbo awọn ila inu faili/ati be be lo/awọn ogun nitori ko fun apẹẹrẹ.
# awk '//{print}'/etc/hosts
Mo apẹẹrẹ ti o wa ni isalẹ, a ti fun apẹẹrẹ
localhost
, nitorinaa awk yoo ba ila mu ti o ni localhost ni/ati be be lo/awọn olugbalejo
faili.# awk '/localhost/{print}' /etc/hosts
(.)
yoo baamu awọn gbolohun ọrọ ti o ni agbegbe, localhost, localnet ninu apẹẹrẹ ni isalẹ.Iyẹn ni lati sọ * l some_single_character c *.
# awk '/l.c/{print}' /etc/hosts
Yoo baamu awọn okun ti o ni localhost, localnet, awọn ila, agbara, bi ninu apẹẹrẹ ni isalẹ:
# awk '/l*c/{print}' /etc/localhost
Iwọ yoo tun mọ pe
(*)
gbìyànjú lati jẹ ki o gba ere-idaraya ti o gunjulo ti o le rii.Jẹ ki a wo ọran ti o ṣe afihan eyi, mu ikosile deede
t * t
eyiti o tumọ si awọn gbolohun ọrọ ibaamu ti o bẹrẹ pẹlu lẹtat
ati pari pẹlut
ninu ila ni isalẹ:this is tecmint, where you get the best good tutorials, how to's, guides, tecmint.
Iwọ yoo gba awọn aye wọnyi nigbati o lo apẹẹrẹ
/t * t/
:this is t this is tecmint this is tecmint, where you get t this is tecmint, where you get the best good t this is tecmint, where you get the best good tutorials, how t this is tecmint, where you get the best good tutorials, how tos, guides, t this is tecmint, where you get the best good tutorials, how tos, guides, tecmint
Ati
(*)
ni/t * t/
ohun kikọ kaadi egan gba awk laaye lati yan aṣayan ti o kẹhin:this is tecmint, where you get the best good tutorials, how to's, guides, tecmint
Mu fun apẹẹrẹ ṣeto
[al1]
, nibi awk yoo baamu gbogbo awọn okun ti o ni ohun kikọa
tabil
tabi1
ni ila kan ninu faili/ati be be lo/awọn ogun.# awk '/[al1]/{print}' /etc/hosts
Apẹẹrẹ ti o tẹle baamu awọn okun ti o bẹrẹ pẹlu boya
K
tabik
atẹle nipaT
:# awk '/[Kk]T/{print}' /etc/hosts
Loye awọn ohun kikọ pẹlu awk:
-
[0-9]
tumọ si nọmba kan ṣoṣo -
[a-z]
tumọ si ibaramu lẹta kekere kekere kan -
[A-Z]
tumọ si ibaamu lẹta lẹta nla oke kan -
[a-zA-Z] tumọ si ibaamu lẹta kan ṣoṣo
-
[a-zA-Z 0-9]
tumọ si ibamu pẹlu lẹta kan tabi nọmba kan
Jẹ ki a wo apẹẹrẹ ni isalẹ:
# awk '/[0-9]/{print}' /etc/hosts
Gbogbo laini lati faili/ati be be lo/awọn ogun ni o kere ju nọmba kan ṣoṣo
[0-9]
ninu apẹẹrẹ ti o wa loke.O baamu gbogbo awọn ila ti o bẹrẹ pẹlu apẹẹrẹ ti a pese gẹgẹbi ninu apẹẹrẹ ni isalẹ:
# awk '/^fe/{print}' /etc/hosts # awk '/^ff/{print}' /etc/hosts
O baamu gbogbo awọn ila ti o pari pẹlu apẹẹrẹ ti a pese:
# awk '/ab$/{print}' /etc/hosts # awk '/ost$/{print}' /etc/hosts # awk '/rs$/{print}' /etc/hosts
O gba ọ laaye lati mu ihuwasi ti o tẹle e bi gegebi ti o ni lati sọ ro o gẹgẹ bi o ti jẹ.
Ninu apẹẹrẹ ti o wa ni isalẹ, aṣẹ akọkọ tẹ jade gbogbo ila ni faili naa, aṣẹ keji tẹ ohunkohun nitori Mo fẹ lati ba ila kan ti o ni $25.00 mu, ṣugbọn ko si ihuwasi ihuwasi ti a lo.
Ofin kẹta jẹ deede nitori a ti lo ihuwasi abayo lati ka $bi o ti jẹ.
# awk '//{print}' deals.txt # awk '/$25.00/{print}' deals.txt # awk '/\$25.00/{print}' deals.txt
Akopọ
Iyẹn kii ṣe gbogbo pẹlu ohun elo sisẹ laini aṣẹ laini awk, awọn apẹẹrẹ ti o wa loke awọn iṣẹ ipilẹ ti awk. Ni awọn apakan atẹle a yoo ni ilọsiwaju lori bi a ṣe le lo awọn ẹya ti o nira ti awk. O ṣeun fun kika nipasẹ ati fun eyikeyi awọn afikun tabi awọn alaye, firanṣẹ asọye ni apakan awọn ọrọ.
-