Os Lab
Os Lab
ﻪ ﻧﺎم ﺧﺪا
۹۸۰۱۲۲۶۸۰۰۱۹ ﺣﺴﻨﺎ ﺣﺒﯿ/0
: AWK
HﺗﻮﻟNﺪ ﮔﺰارش اﺳﺘﻔﺎدە ﻣTﺸﻮد .اﯾﻦ دﺳﺘﻮر ﻧNﺎزی ﺑﺮای دﺳﺘAﺎری دادە Dﺎ و Dﻤﭽﻨ J I
!ﻪ ZﺎﻣﭙNﺎل ﻧﺪارد و !ﻪ Zﻤﮏ آن ﻣﯿﺘﻮان از ﻣﺘﻐD aIﺎ ،ﺗﻮاﺑﻊ ﻋﺪدی ،ﺗﻮاﺑﻊ رﺷﺘﻪ و
ﻋﻤﻠgﺮ Dﺎی ﻣﻨﻄ ijاﺳﺘﻔﺎدە ﮐﺮد! .ﺎ AWKﺑﺮﻧﺎﻣﻪ ﻧmlﺲ Dﺎ ﻣﯿﺘﻮاﻧﻨﺪ ﺑﺮﻧﺎﻣﻪ Dﺎی
ﮐﻮﭼﮏ ﻣﺆﺛﺮی را در ﻗﺎﻟﺐ ﻋtﺎرا ujﺑﻨmlﺴﻨﺪ ﮐﻪ اﻟgﻮ Dﺎی ﻣﺘ /Jرا ﮐﻪ !ﺎvﺪ در Dﺮ ﺧﻂ
v Hﮏ ﻣﻄﺎﺑﻖ در vﮏ vﮏ documentﺟﺴﺘﺠﻮ ﺷﻮد و اﻗﺪا‚ ﮐﻪ !ﺎvﺪ Dﻨƒﺎم vﺎﻓ J j
ﺧﻂ اﻧﺠﺎم ﺷﻮد را ﺗﻌ‡ˆﻒ ﮐﻨﻨﺪ AWK .ﺑTﺸ ajﺑﺮای اﺳﮑﻦ ﮐﺮدن و ﭘﺮدازش اﻟgﻮ
اﺳﺘﻔﺎدە ﻣTﺸﻮد .اﯾﻨﻄﻮر ﮐﻪ vﮏ vﺎ ﭼﻨﺪ ﻓﺎvﻞ را ﺟﺴﺘﻮﺟﻮ ﻣNﮑﻨﺪ ﺗﺎ ﺑ•ﯿﻨﺪ آvﺎ آﻧŽﺎ
دارای ﺧﻄﻮ• Dﺴ•ﻨﺪ ﮐﻪ !ﺎ اﻟgﻮ Dﺎی ﻣﺸﺨﺺ ﺷﺪە ﺗﻄﺎﺑﻖ داﺷﺘﻪ !ﺎﺷﺪ vﺎ ﻧﻪ.
ﺳ“ﺲ اﻗﺪاﻣﺎت ﻣ‡•ﻮط !ﻪ آن را اﻧﺠﺎم ﻣNﺪDﺪ.
Operations:
اﺳﮑﻦ ﮐﺮدن ﺧﻂ !ﻪ ﺧﻂ vﮏ ﻓﺎvﻞ
ﺗﻘﺴNﻢ ﮐﺮدن Dﺮ ﺧﻂ ورودی !ﻪ ﻓNﻠﺪ Dﺎ
ﻣﻘﺎŸﺴﻪ ﮐﺮدن ﺧﻂ vﺎ ﻓNﻠﺪ ورودی !ﺎ اﻟgﻮ ﻣﺸﺨﺺ ﺷﺪە
اﻧﺠﺎم ﻋﻤﻞ ﻻزم روی ﺧﻄﻮط Dﻤﺴﺎن
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﺗtﺪvﻞ ﻓﺎvﻞ Dﺎی دادە و ﺗNŽﻪ ﮔﺰارش Dﺎی ﻗﺎﻟﺐ ﺑﻨﺪی ﺷﺪە Zﺎر•ﺮدی
اﺳﺖ.
Syntax:
awk options ‘selection _criteria {action}’ input-file > output-file
Awkاز اﻧﻮاع ﻣﺨﺘﻠ iJاز دﺳﺘﻮرات ،از ﺟﻤﻠﻪ ﻋtﺎراتD •±² ،ﺎ ،دﺳﺘﻮرات ورودی،
ﺧﺮو ³0و ﻏaIە µﺸ•ﯿtﺎ ‚ uJﮐﻨﺪ .راﯾﺞ ﺗ‡ˆﻦ ﻋtﺎرات awkﻋtﺎرﺗﻨﺪ از:
- exitاﺟﺮای Zﻞ ﺑﺮﻧﺎﻣﻪ را ﻣﺘﻮﻗﻒ ‚ ﮐﻨﺪ و ﺧﺎرج ‚ ﺷﻮد.
- nextﭘﺮدازش رﮐﻮرد ﻓﻌ¸ را ﻣﺘﻮﻗﻒ ‚ ﮐﻨﺪ و !ﻪ رﮐﻮرد !ﻌﺪی در دادە Dﺎی ورودی
‚ رود.
Hﺳﻔﺎر.º² - printﭼﺎپ رﮐﻮردDﺎ ،ﻓNﻠﺪDﺎ ،ﻣﺘﻐDaIﺎ و ﻣ J j
– Printfﮐﻨajل ﺑTﺸajی روی ﻓﺮﻣﺖ ﺧﺮو ³0ﻣNﺪDﺪ.
vﮏ ﺑﺮﻧﺎﻣﻪ awkرا ‚ ﺗﻮان !ﻪ روش Dﺎی ﻣﺨﺘﻠ iJاﺟﺮا ﮐﺮد .ا½ﺮ ﺑﺮﻧﺎﻣﻪ ﮐﻮﺗﺎە و ﺳﺎدە
¾
!ﺎﺷﺪ ‚ ،ﺗﻮان آن را ﻣﺴﺘﻘNﻤﺎ !ﻪ ﻣﻔ¿ awkدر ﺧﻂ ﻓﺮﻣﺎن ارﺳﺎل ﮐﺮد.
…awk ‘program’ input-file
example:
test.txt:
aa bc 1 2 3 0.4
dd ef 5 6 7 0.8
gg hi 9 10 0.11
jj kl 12 13 0.14
:tr
vﮏ commandﺑﺮای ﺗﺮﺟﻤﻪ vﺎ ﺣﺬف ﮐﺮدن ZﺎراD ajÒﺎﺳﺖ ﮐﻪ از ﻃNﻒ وﺳ ÔNاز
ﺗtﺪvﻞ Dﺎ ﻣﺜﻞ ﺗtﺪvﻞ ﺣﺮوف ﺑﺰرگ !ﻪ ﮐﻮﭼﮏ ،ﻓ¿²دە ﮐﺮدن ZﺎراD ajÒﺎی ﺗﮑﺮاری،
Hو ﺟﺎvﮕ /JˆÙاوﻟNﻪ µﺸ•ﯿtﺎ uJﻣNﮑﻨﺪ.
ﺣﺬف ﮐﺮدن ZﺎراD ajÒﺎی ﺧﺎص و vﺎﻓ J j
Syntax:
]$ tr [OPTION] SET1 [SET2
Options:
: -cﻣﺠﻤﻮﻋﻪ ZﺎراD ajÒﺎ را در رﺷﺘﻪ ﺗAﻤNﻞ ﻣNﮑﻨﺪ .ﻣﺜﻼ ﻋﻤﻠNﺎت ﺑﺮای ZﺎراD ajÒﺎuá
ﮐﻪ در ﻣﺠﻤﻮﻋﻪ دادە ﺷﺪە ﻧTﺴ•ﻨﺪ اﻋﻤﺎل ﻣTﺸﻮد.
Z : -dﺎراD ajÒﺎی ﻣﺠﻤﻮﻋﻪ اول را از ﺧﺮو ³0ﺣﺬف ﻣNﮑﻨﺪ.
Z : -sﺎراD ajÒﺎی ﺗﮑﺮاری ﻓŽﺮﺳﺖ ﺷﺪە در set1را !ﺎ vﮏ occurrenceﺟﺎvﮕˆÙﻦ
ﻣNﮑﻨﺪ.
set1 : -tرا ﮐﻮﺗﺎە ﻣNﮑﻨﺪ.
ﻣﺜﺎل:
’$ echo ‘helloworld’ | tr ‘hel’ ‘pcd
output : pcddoworld
Output: HELLOWORLD
:SED
اﯾﻦ دﺳﺘﻮر ﻣﺨﻔﻒ )! (stream editorﻪ ﻣﻌﻨﺎی وˆﺮاŸﺸﮕﺮ ﺟ‡ˆﺎن اﺳﺖ و ﻣﯿﺘﻮاﻧﺪ
Hو ﺟﺎvﮕ ،/JˆÙدرج vﺎ ﺣﺬف را روی éﺴNﺎری از ﻋﻤﻠêﺮد Dﺎ از ﺟﻤﻠﻪ ﺟﺴﺘﺠﻮv ،ﺎﻓ J j
ﻓﺎvﻞ اﻧﺠﺎم دDﺪ.
Hو ﺟﺎvﮕ /JˆÙاﺳﺖ! .ﺎ اﺳﺘﻔﺎدە از راﯾﺞ ﺗ‡ˆﻦ Zﺎر•ﺮد اﯾﻦ دﺳﺘﻮر ﺑﺮای ﺟﺎvﮕv /JˆÙﺎ vﺎﻓ J j
Hو آن ﻣﯿﺘﻮان ﻓﺎvﻞ Dﺎ را ﺣ! /jﺪون !ﺎز ﮐﺮدن آن Dﺎ وˆﺮاŸﺶ ﮐﺮد و اﯾﻦ راە ﺑﺮای vﺎﻓ J j
ﺟﺎvﮕˆÙﻦ ﮐﺮدن ﭼ aJ Iی در ﻓﺎvﻞ éﺴNﺎر ˆ±ـ ـﻊ اﺳﺖ íﺴîﺖ !ﻪ اﯾﻨﮑﻪ ﻓﺎvﻞ در وˆﺮاŸﺸﮕﺮ
! VIﺎز ﺷﻮد و !ﻌﺪ ﺗﻐﯿaIات ﻻزم روی آن اﻋﻤﺎل ﺷﻮد .اﯾﻦ دﺳﺘﻮر از ﻋtﺎرات ﻣﻨﻈﻢ
µﺸ•ﯿtﺎ uJﻣNﮑﻨﺪ µﺲ اﻣAﺎن ﺗﻄﺒﯿﻖ اﻟgﻮی ﭘNﭽNﺪە را ﻣNﺪDﺪ.
Syntax:
sed OPTIONS… [SCRIPT] [INPUTFILE…]
example:
1. sed ‘s/apple/orange/g’ test.txt -> replacing every
occurance of apple with orange in test.txt
2. sed ‘s/apple|banana/orange/g’ test.txt -> replacing every
occurance of apple or banana with orange.
3. sed -n 12,18p test.txt -> show only lines 12-18 of test.txt
4. sed ‘$d’ test.txt -> delete the last line.