පෙළ සැකසීම Unix හි හදවතයි. පයිප්ප සිට /proc උප පද්ධතිය දක්වා, "සියල්ල ගොනුවකි" දර්ශනය මෙහෙයුම් පද්ධතිය සහ ඒ සඳහා ගොඩනගා ඇති සියලුම මෙවලම් පුරා පැතිර පවතී. මේ නිසා, පෙළ-සැකසුම සමඟ සැපපහසු වීම අපේක්ෂා කරන ලිනක්ස් පද්ධති පරිපාලකයෙකුට හෝ ඕනෑම බල පරිශීලකයෙකුට ඉතා වැදගත් කුසලතාවන්ගෙන් එකක් වන අතර awk යනු පවතින බලවත්ම පෙළ-සැකසුම් මෙවලම්වලින් එකකි. පොදු කාර්ය ක්රමලේඛන භාෂාවෙන් පිටත.
සරලම awk කාර්යය වන්නේ stdin වෙතින් ක්ෂේත්ර තේරීමයි; ඔබ මෙයට වඩා awk ගැන වැඩිදුර ඉගෙන නොගන්නේ නම්, ඔබ සතුව අතිශය ප්රයෝජනවත් මෙවලමක් තවමත් තිබේ.
වැඩිදුර කියවන්න →AWK රටා සෙවීම සහ සැකසීම සඳහා සුදුසු වේ. ගැළපෙන රටා හඳුනා ගැනීමට සහ එම රටා නිශ්චිත කාර්යයන් ඉටු කරන්නේ නම් ගොනු එකක් හෝ කිහිපයක් සෙවීමට ස්ක්රිප්ට් ධාවනය වේ. මෙම මාර්ගෝපදේශය තුළ, අපි AWK Linux විධානය දෙස බලා එයට කළ හැකි දේ බලමු.
Linux උපයෝගිතා බොහෝ විට Unix නිර්මාණයේ දර්ශනය අනුගමනය කරයි. මෙවලම් කුඩා වීමට, ආදානය සහ ප්රතිදානය සඳහා සරල පෙළ ගොනු භාවිතා කිරීමට සහ මොඩියුලර් ආකාරයෙන් ක්රියා කිරීමට දිරිගන්වනු ලැබේ. මෙම උරුමය නිසා, අපට sed සහ awk වැනි මෙවලම් සමඟ විශිෂ්ට පෙළ සැකසුම් ක්රියාකාරීත්වයක් ඇත.
awk යනු ඔබට ඉතා ප්රයෝජනවත් ආකාරයෙන් පෙළ දත්ත හැසිරවීමට භාවිතා කළ හැකි ක්රමලේඛන භාෂාවක් සහ පෙළ සකසනයකි. මෙම මාර්ගෝපදේශය තුළ, ඔබ awk විධාන රේඛා මෙවලම භාවිතා කරන්නේ කෙසේද සහ පෙළ සැකසීමට එය භාවිතා කරන්නේ කෙසේද යන්න ගවේෂණය කරනු ඇත.
Linux පද්ධති පරිපාලකයෙකු ලෙස, බොහෝ විට, ඔබට විවිධ විධාන වලින් ප්රතිදානය හැසිරවීමට සහ නැවත හැඩතල ගැන්වීමට අවශ්ය වන අවස්ථා වලට ඔබ පිවිසෙනු ඇත, පේළි කිහිපයක් පෙරීමෙන් ප්රතිදානයක කොටසක් සරලව පෙන්වීමට. පෙරහන් ලෙස හඳුන්වන ලිනක්ස් වැඩසටහන් එකතුවක් භාවිතා කරමින් මෙම ක්රියාවලිය පෙළ පෙරීම ලෙස හැඳින්විය හැක.
පෙළ පෙරීම සඳහා ලිනක්ස් උපයෝගිතා කිහිපයක් ඇති අතර සමහර ප්රසිද්ධ පෙරහන් අතරට head, tail, grep, tr, fmt, sort, uniq, pr සහ Awk සහ Sed වැනි වඩාත් දියුණු සහ බලවත් මෙවලම් ඇතුළත් වේ.
වැඩිදුර කියවන්න →Awk මාලාවේ ආරම්භයේ සිට 12 වන කොටස දක්වා, අපි පිළිවෙලින් විධාන රේඛාවේ සහ shell scripts වල කුඩා Awk විධාන සහ වැඩසටහන් ලියමින් සිටිමු.
කෙසේ වෙතත්, Awk, Shell මෙන්ම, ද අර්ථකථනය කරන ලද භාෂාවකි, එබැවින්, මෙම මාලාවේ ආරම්භයේ සිට අප විසින් ගමන් කර ඇති සියල්ල සමඟ, ඔබට දැන් Awk ක්රියාත්මක කළ හැකි ස්ක්රිප්ට් ලිවිය හැකිය.
අපි shell script එකක් ලියන ආකාරය හා සමානව, Awk ස්ක්රිප්ට් ආරම්භ වන්නේ රේඛාවෙනි:
#! /path/to/awk/utility -fඋදාහරණයක් ලෙස මගේ පද්ධතියේ, Awk උපයෝගීතාව /usr/bin/awk හි පිහිටා ඇත, එබැවින්, මම පහත පරිදි Awk ස්ක්රිප්ට් එකක් ආරම්භ කරමි:
#! /usr/bin/awk - වැඩිදුර කියවන්න →ඔබ අප මෙතෙක් ආවරණය කර ඇති සියලුම Awk උදාහරණ සමාලෝචනය කරන විට, සමහර කොන්දේසි මත පදනම්ව පෙළ පෙරීමේ මෙහෙයුම් ආරම්භයේ සිටම, ප්රවාහ පාලන ප්රකාශවල ප්රවේශය ආරම්භ වන්නේ එහිදීය.
Awk ක්රමලේඛනයේ විවිධ ප්රවාහ පාලන ප්රකාශ ඇති අතර මේවාට ඇතුළත් වන්නේ:
අපි shell scripts ලියන විට, අපි සාමාන්යයෙන් වෙනත් කුඩා වැඩසටහන් හෝ Awk මෙහෙයුම් වැනි විධාන අපගේ ස්ක්රිප්ට්වලට ඇතුළත් කරමු. Awk සම්බන්ධයෙන් ගත් කල, අපට shell එකේ සිට Awk මෙහෙයුම් වෙත යම් අගයන් යැවීමේ ක්රම සොයා ගැනීමට සිදුවේ.
මෙය Awk විධානයන් තුළ ඇති shell විචල්යයන් භාවිතයෙන් සිදු කළ හැකි අතර, මෙම ශ්රේණියේ මෙම කොටසේදී, Awk විධාන වෙත යැවීමට අවශ්ය අගයන් අඩංගු විය හැකි shell විචල්යයන් භාවිතා කිරීමට Awk හට ඉඩ දෙන්නේ කෙසේදැයි අපි ඉගෙන ගනිමු.
ෂෙල් විචල්යයන් භාවිතා කිරීමට ඔබට Awk සක්රීය කළ හැකි ක්රම දෙකක් තිබේ:
Awk විධානයක ඇති shell varia
වැඩිදුර කියවන්න →අපි Awk විශේෂාංග කොටස අනාවරණය කරන විට, මාලාවේ මෙම කොටසේදී, අපි Awk හි ඇති විචල්යයන් පිළිබඳ සංකල්පය හරහා ගමන් කරමු. ඔබට Awk හි භාවිතා කළ හැකි විචල්ය වර්ග දෙකක් තිබේ, ඒවා නම්; පරිශීලක නිර්වචනය කරන ලද විචල්යයන්, අපි 8 වන කොටසින් සහ බිල්ට් විචල්ය වලින් ආවරණය කළෙමු.
Built-in variables වලට Awk හි දැනටමත් අර්ථ දක්වා ඇති අගයන් ඇත, නමුත් අපට එම අගයන් ප්රවේශමෙන් වෙනස් කළ හැක, බිල්ට් විචල්යවලට ඇතුළත් වන්නේ:
වැඩිදුර කියවන්න →Awk විධාන මාලාව උද්දීපනය වන බව මම විශ්වාස කරමි, පෙර කොටස් හත තුළ, අපි ඔබට ලිනක්ස් හි මූලික පෙළ හෝ තන්තු පෙරීම සිදු කිරීමට ඔබට ප්රගුණ කළ යුතු Awk හි මූලික කරුණු කිහිපයක් හරහා ගියෙමු.
මෙම කොටසින් පටන් ගෙන, අපි වඩාත් සංකීර්ණ පෙළ හෝ නූල් පෙරීමේ මෙහෙයුම් හැසිරවීමට Awk හි පූර්ව ප්රදේශවලට කිමිදෙමු. එබැවින්, අපි විචල්ය, සංඛ්යාත්මක ප්රකාශන සහ පැවරුම් ක්රියාකරුවන් වැනි Awk විශේෂාංග ආවරණය කිරීමට යන්නෙමු.
වැඩිදුර කියවන්න →Awk මෙවලම් මාලාවේ පෙර කොටස්වල, අපි බොහෝ දුරට ගොනුවකින් ආදානය කියවීම දෙස බැලුවෙමු, නමුත් ඔබට STDIN වෙතින් ආදානය කියවීමට අවශ්ය නම් කුමක් කළ යුතුද යන්න.
Awk ශ්රේණියේ 7 වන කොටසෙහි, ගොනුවකින් ආදානය කියවීම වෙනුවට ඔබට වෙනත් විධානවල ප්රතිදානය පෙරීමට හැකි උදාහරණ කිහිපයක් අපි බලමු.
අපි ls විධානයෙන් පටන් ගනිමු, පහත පළමු උදාහරණයේ දී, හිමිකරුගේ පරිශීලක නාමය, කණ්ඩායම් නාමය සහ ඔහු/ඇය සතු ගොනු මුද්රණය කිරීමට Awk සඳහා ආදානය ලෙස අපි dir -l විධානයේ ප්රතිදානය භාවිතා කරමු. නාමාවලිය:
# dir -l | awk '{print $3, $4, $9;}' වැඩිදුර කියවන්න →