உரை தரவு அல்லது கோப்பிலிருந்து ஒரு அறிக்கையைத் தேட மற்றும் உருவாக்க லினக்ஸ் இயக்க முறைமையில் பல பயன்பாட்டு கருவிகள் உள்ளன. பயனர் பல வகையான தேடுதல், மாற்றுவது மற்றும் உருவாக்கும் பணிகளை awk, grep மற்றும் sed கட்டளைகளைப் பயன்படுத்தி எளிதாகச் செய்ய முடியும். ak என்பது வெறும் கட்டளை அல்ல. இது ஒரு ஸ்கிரிப்டிங் மொழி, இது முனையம் மற்றும் ஏவி கோப்பு இரண்டிலிருந்தும் பயன்படுத்தப்படலாம். இது மாறி, நிபந்தனை அறிக்கை, வரிசை, சுழல்கள் போன்றவற்றை மற்ற ஸ்கிரிப்டிங் மொழிகள் போன்றவற்றை ஆதரிக்கிறது. இது எந்த கோப்பு உள்ளடக்கத்தையும் வரியாகப் படிக்கலாம் மற்றும் ஒரு குறிப்பிட்ட வரையறையின் அடிப்படையில் புலங்கள் அல்லது நெடுவரிசைகளைப் பிரிக்கலாம். உரை உள்ளடக்கம் அல்லது கோப்பில் குறிப்பிட்ட சரத்தைத் தேடுவதற்கான வழக்கமான வெளிப்பாட்டையும் இது ஆதரிக்கிறது மற்றும் ஏதேனும் பொருத்தம் இருந்தால் நடவடிக்கை எடுக்கிறது. 20 பயனுள்ள எடுத்துக்காட்டுகளைப் பயன்படுத்தி நீங்கள் எப்படி ak கட்டளை மற்றும் ஸ்கிரிப்டைப் பயன்படுத்தலாம் என்பது இந்த டுடோரியலில் காட்டப்பட்டுள்ளது.
உள்ளடக்கம்:
- printf உடன் awk
- வெள்ளை இடைவெளியில் பிரிப்பதற்கு
- எல்லையை மாற்ற அக்
- டேப்-பிரிக்கப்பட்ட தரவுகளுடன் awk
- சிஎஸ்வி தரவுடன் awk
- awk regex
- awk வழக்கு உணர்ச்சியற்ற regex
- ak உடன் nf (புலங்களின் எண்ணிக்கை) மாறி
- awk gensub () செயல்பாடு
- rand () செயல்பாட்டுடன் awk
- awk பயனர் வரையறுக்கப்பட்ட செயல்பாடு
- அச்சச்சோ என்றால்
- awk மாறிகள்
- awk வரிசைகள்
- awk வளைய
- முதல் நெடுவரிசையை அச்சிட வேண்டும்
- கடைசி நெடுவரிசையை அச்சிட வேண்டும்
- க்ரீப் உடன் அக்
- பேஷ் ஸ்கிரிப்ட் கோப்புடன்
- செடியுடன் விழி
Printf உடன் awk ஐப் பயன்படுத்துதல்
printf () பெரும்பாலான நிரலாக்க மொழிகளில் எந்த வெளியீட்டையும் வடிவமைக்க செயல்பாடு பயன்படுத்தப்படுகிறது. இந்த செயல்பாட்டை உடன் பயன்படுத்தலாம் விழி பல்வேறு வகையான வடிவமைக்கப்பட்ட வெளியீடுகளை உருவாக்க கட்டளை. awk கட்டளை முக்கியமாக எந்த உரை கோப்பிற்கும் பயன்படுத்தப்படுகிறது. என்ற உரை கோப்பை உருவாக்கவும் ஊழியர். உரை தாவலில் (‘ t’) புலங்கள் பிரிக்கப்பட்ட உள்ளடக்கம் கீழே கொடுக்கப்பட்டுள்ளது.
ஊழியர். உரை
1001 ஜான் சேனா 40000
1002 ஜாபர் இக்பால் 60000
1003 மெஹர் நிகர் 30000
1004 ஜானி கல்லீரல் 70000
பின்வரும் awk கட்டளை இதிலிருந்து தரவைப் படிக்கும் ஊழியர். உரை வரிக்கு வரி கோப்பு மற்றும் வடிவமைத்த பிறகு முதலில் தாக்கல் செய்ததை அச்சிடவும். இங்கே, %10 கள் n வெளியீடு 10 எழுத்துக்கள் நீளமாக இருக்கும் என்று அர்த்தம். வெளியீட்டின் மதிப்பு 10 எழுத்துகளுக்கு குறைவாக இருந்தால் மதிப்பின் முன்புறத்தில் இடைவெளிகள் சேர்க்கப்படும்.
$ awk'{printf'%10s n', $ 1}'ஊழியர்txt
வெளியீடு:
வெள்ளை இடைவெளியில் பிரிப்பதற்கு
எந்தவொரு உரையையும் பிரிப்பதற்கான இயல்புநிலை சொல் அல்லது புலப் பிரிப்பான் வெள்ளை இடம். awk கட்டளை பல்வேறு வழிகளில் உரை மதிப்பை உள்ளீடாக எடுத்துக் கொள்ளலாம். உள்ளீட்டு உரை அனுப்பப்பட்டது வெளியே எறிந்தார் பின்வரும் எடுத்துக்காட்டில் கட்டளை. உரை, ' எனக்கு நிரலாக்கம் பிடிக்கும் இயல்புநிலை பிரிப்பான் மூலம் பிரிக்கப்படும், இடம் , மற்றும் மூன்றாவது வார்த்தை வெளியீடாக அச்சிடப்படும்.
$வெளியே எறிந்தார் 'எனக்கு நிரலாக்கம் பிடிக்கும்' | விழி '{$ 3} அச்சிடவும்'வெளியீடு:
எல்லையை மாற்ற அக்
awk கட்டளை எந்த கோப்பு உள்ளடக்கத்திற்கும் வரம்பை மாற்ற பயன்படுகிறது. உங்களிடம் ஒரு உரை கோப்பு உள்ளது என்று வைத்துக்கொள்வோம் phone.txt பின்வரும் உள்ளடக்கத்துடன் கோப்பு உள்ளடக்கத்தின் புலப் பிரிப்பானாக ‘:’ பயன்படுத்தப்படுகிறது.
phone.txt
+123: 334: 889: 778+880: 1855: 456: 907
+9: 7777: 38644: 808
டிலிமிட்டரை மாற்ற பின்வரும் ஏக் கட்டளையை இயக்கவும், ':' மூலம் '-' கோப்பின் உள்ளடக்கத்திற்கு, phone.txt .
$ cat phone.txt$ awk '$ 1 = $ 1' FS = ':' OFS = '-' phone.txt
வெளியீடு:
டேப்-பிரிக்கப்பட்ட தரவுகளுடன் awk
awk கட்டளையில் பல உள்ளமைக்கப்பட்ட மாறிகள் உள்ளன, அவை உரையை வெவ்வேறு வழிகளில் படிக்கப் பயன்படுகின்றன. அவற்றில் இரண்டு எஃப்எஸ் மற்றும் OFS . எஃப்எஸ் உள்ளீடு புலம் பிரிப்பான் மற்றும் OFS வெளியீடு புலம் பிரிப்பான் மாறிகள் ஆகும். இந்த மாறிகளின் பயன்பாடுகள் இந்தப் பிரிவில் காட்டப்பட்டுள்ளன. ஒன்றை உருவாக்கவும் தாவல் பிரிக்கப்பட்ட கோப்பு பெயரிடப்பட்டது input.txt பின்வரும் உள்ளடக்கத்துடன் பயன்பாடுகளை சோதிக்க எஃப்எஸ் மற்றும் OFS மாறிகள்.
உள்ளீடு. உரை
வாடிக்கையாளர் பக்க ஸ்கிரிப்டிங் மொழிசர்வர் பக்க ஸ்கிரிப்டிங் மொழி
தரவுத்தள சேவையகம்
வலை சேவையகம்
தாவலுடன் FS மாறியைப் பயன்படுத்துதல்
பின்வரும் கட்டளை ஒவ்வொரு வரியையும் பிரிக்கும் input.txt தாவலை அடிப்படையாகக் கொண்ட கோப்பு (‘ t’) மற்றும் ஒவ்வொரு வரியின் முதல் புலத்தையும் அச்சிடவும்.
$விழி '{$ 1} அச்சிடவும்' எஃப்எஸ்=' t'input.txtவெளியீடு:
தாவலுடன் OFS மாறியைப் பயன்படுத்துதல்
பின்வரும் awk கட்டளை அச்சிடப்படும் 9வது மற்றும் 5வது துறைகள் 'எல்எஸ் -எல்' நெடுவரிசை தலைப்பை அச்சிட்ட பிறகு தாவல் பிரிப்பானுடன் கட்டளை வெளியீடு பெயர் மற்றும் அளவு . இங்கே, OFS மாறி ஒரு தாவலின் மூலம் வெளியீட்டை வடிவமைக்க பயன்படுகிறது.
$ls -தி$ls -தி | விழி -வி OFS=' t' 'BEGIN {printf'%s t%s n ',' Name ',' Size '} {print $ 9, $ 5}'
வெளியீடு:
CSV தரவுகளுடன் awk
எந்தவொரு CSV கோப்பின் உள்ளடக்கத்தையும் awk கட்டளையைப் பயன்படுத்தி பல வழிகளில் பாகுபடுத்தலாம். 'என்ற பெயரில் ஒரு CSV கோப்பை உருவாக்கவும் Customr.csv 'Awk கட்டளையைப் பயன்படுத்த பின்வரும் உள்ளடக்கத்துடன்.
customr.txt
ஐடி, பெயர், மின்னஞ்சல், தொலைபேசி1, சோபியா, [மின்னஞ்சல் பாதுகாக்கப்பட்ட], (862) 478-7263
2, அமெலியா, [மின்னஞ்சல் பாதுகாக்கப்பட்ட], (530) 764-8000
3, எம்மா, [மின்னஞ்சல் பாதுகாக்கப்பட்ட], (542) 986-2390
CSV கோப்பின் ஒற்றை புலத்தைப் படித்தல்
'-F' கோப்பின் ஒவ்வொரு வரியையும் பிரிப்பதற்காக டிலிமிட்டரை அமைக்க awk கட்டளையுடன் விருப்பம் பயன்படுத்தப்படுகிறது. பின்வரும் awk கட்டளை அச்சிடப்படும் பெயர் துறையில் வாடிக்கையாளர்.சி.வி கோப்பு.
$பூனைCustomr.csv$விழி -எஃப் ',' '{$ 2} அச்சிடவும்'Customr.csv
வெளியீடு:
மற்ற உரைகளுடன் இணைப்பதன் மூலம் பல துறைகளைப் படித்தல்
பின்வரும் கட்டளை மூன்று துறைகளை அச்சிடும் Customr.csv தலைப்பு உரையை இணைப்பதன் மூலம், பெயர், மின்னஞ்சல் மற்றும் தொலைபேசி . இதன் முதல் வரி Customr.csv கோப்பில் ஒவ்வொரு புலத்தின் தலைப்பும் உள்ளது. இல்லை ak கட்டளை கோப்பை பாகுபடுத்தும் போது variable ஆனது கோப்பின் வரி எண்ணைக் கொண்டுள்ளது. இந்த எடுத்துக்காட்டில், என்.ஆர் கோப்பின் முதல் வரியைத் தவிர்க்க மாறி பயன்படுத்தப்படுகிறது. வெளியீடு 2 ஐக் காட்டும்nd, 3ஆர்.டிமற்றும் 4வதுமுதல் வரியைத் தவிர அனைத்து வரிகளின் புலங்கள்.
$விழி -எஃப் ',' 'NR> 1 {அச்சு' பெயர்: '$ 2', மின்னஞ்சல்: '$ 3', தொலைபேசி: '$ 4}'Customr.csvவெளியீடு:
ஒரு ஏவி ஸ்கிரிப்டைப் பயன்படுத்தி சிஎஸ்வி கோப்பைப் படித்தல்
awk கோப்பை இயக்குவதன் மூலம் awk ஸ்கிரிப்டை செயல்படுத்த முடியும். நீங்கள் எப்படி awk கோப்பை உருவாக்கலாம் மற்றும் கோப்பை இயக்கலாம் என்பது இந்த எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது. என்ற கோப்பை உருவாக்கவும் awkcsv.awk பின்வரும் குறியீட்டுடன். ஆரம்பம் ஸ்கிரிப்ட்டில் ஸ்க்ரிப்டை இயக்க awk கட்டளையை தெரிவிக்க ஸ்கிரிப்டில் முக்கிய சொல் பயன்படுத்தப்படுகிறது ஆரம்பம் மற்ற பணிகளைச் செய்வதற்கு முன் முதலில் பாகம். இங்கே, புலம் பிரிப்பான் ( எஃப்எஸ் ) பிரித்தல் டிலிமிட்டர் மற்றும் 2 ஐ வரையறுக்கப் பயன்படுகிறதுndமற்றும் 1ஸ்டம்ப்பிரிண்ட்எஃப் () செயல்பாட்டில் பயன்படுத்தப்படும் வடிவமைப்பின் படி புலங்கள் அச்சிடப்படும்.
awkcsv.விழிஆரம்பம்{எஃப்எஸ்= ','} { printf '% 5s (% s) n',$2,$1}
ஓடு awkcsv.awk உள்ளடக்கத்துடன் கோப்பு வாடிக்கையாளர்.சி.வி பின்வரும் கட்டளையால் கோப்பு.
$விழி -fawkcsv.awk customerr.csvவெளியீடு:
awk regex
வழக்கமான வெளிப்பாடு என்பது ஒரு உரையில் எந்த சரத்தையும் தேட பயன்படும் ஒரு வடிவமாகும். வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தி பல்வேறு வகையான சிக்கலான தேடல் மற்றும் மாற்றும் பணிகளை மிக எளிதாக செய்ய முடியும். Awk கட்டளையுடன் வழக்கமான வெளிப்பாட்டின் சில எளிய பயன்பாடுகள் இந்தப் பிரிவில் காட்டப்பட்டுள்ளன.
பொருந்தும் தன்மைஅமைபின்வரும் கட்டளை வார்த்தையுடன் பொருந்தும் முட்டாள் அல்லது பூல் அல்லது குளிர் உள்ளீடு சரம் மற்றும் அச்சிடப்பட்ட வார்த்தை இருந்தால். இங்கே, பொம்மை பொருந்தாது மற்றும் அச்சிடாது.
$printf 'முட்டாள் nகுளிர் nபொம்மை nபூல் ' | விழி '/[FbC] ool/'வெளியீடு:
வரியின் தொடக்கத்தில் சரம் தேடுகிறது
'^' வரியின் தொடக்கத்தில் எந்த வடிவத்தையும் தேட வழக்கமான வெளிப்பாட்டில் சின்னம் பயன்படுத்தப்படுகிறது. ' லினக்ஸ் ' பின்வரும் எடுத்துக்காட்டில் உரையின் ஒவ்வொரு வரியின் தொடக்கத்திலும் வார்த்தை தேடப்படும். இங்கே, இரண்டு வரிகள் உரையுடன் தொடங்குகின்றன, 'லினக்ஸ் மற்றும் அந்த இரண்டு கோடுகள் வெளியீட்டில் காட்டப்படும்.
$வெளியே எறிந்தார் மற்றும் மற்றும் லினக்ஸ் பயன்படுத்த இலவசம் nஇது ஒரு திறந்த மூல மென்பொருள் nலினக்ஸ்ஹிண்ட் ஆகும்ஒரு பிரபலமான வலைப்பதிவு தளம் ' | விழி '/^லினக்ஸ்/'
வெளியீடு:
வரியின் இறுதியில் சரம் தேடுகிறது
'$' உரையின் ஒவ்வொரு வரியின் முடிவிலும் எந்த வடிவத்தையும் தேட வழக்கமான வெளிப்பாட்டில் சின்னம் பயன்படுத்தப்படுகிறது. ' கையால் எழுதப்பட்ட தாள் பின்வரும் எடுத்துக்காட்டில் வார்த்தை தேடப்பட்டுள்ளது. இங்கே, இரண்டு வரிகளில் வார்த்தை உள்ளது, கையால் எழுதப்பட்ட தாள் வரியின் இறுதியில்.
$வெளியே எறிந்தார் மற்றும் மற்றும் 'PHP ஸ்கிரிப்ட் nஜாவாஸ்கிரிப்ட் nவிஷுவல் புரோகிராமிங் ' | விழி '/ஸ்கிரிப்ட் $/'வெளியீடு:
குறிப்பிட்ட எழுத்துத் தொகுப்பைத் தவிர்த்து தேடுகிறது
'^' எந்த சரம் முறைக்கும் முன்னால் பயன்படுத்தும்போது குறியீடானது உரையின் தொடக்கத்தைக் குறிக்கிறது (' / ^... /') அல்லது அறிவிக்கப்பட்ட எந்த எழுத்து அமைப்பிற்கும் முன் ^ […] . என்றால் '^' சின்னம் மூன்றாவது அடைப்புக்குறிக்குள் பயன்படுத்தப்படுகிறது, [^...] பின்னர் தேடும் நேரத்தில் அடைப்புக்குறிக்குள் வரையறுக்கப்பட்ட எழுத்து தவிர்க்கப்படும். பின்வரும் கட்டளை தொடங்காத எந்த வார்த்தையையும் தேடும் 'எஃப்' ஆனால் 'உடன் முடிவடைகிறது ஊல் ' குளிர் மற்றும் பூல் முறை மற்றும் உரை தரவுகளின்படி அச்சிடப்படும்.
$ printf 'முட்டாள் nகுளிர் nபொம்மை nபூல் ' |விழி' / [^ F] ஊல் /'வெளியீடு:
awk வழக்கு உணர்ச்சியற்ற regex
இயல்பாக, வழக்கமான வெளிப்பாடு சரத்தில் எந்த வடிவத்தையும் தேடும் போது முக்கியமான தேடலை செய்கிறது. வழக்கற்ற உணர்திறன் தேடலை வழக்கமான வெளிப்பாட்டுடன் awk கட்டளை மூலம் செய்யலாம். பின்வரும் எடுத்துக்காட்டில், தாழ்த்த() செயல்பாடு உணர்ச்சியற்ற தேடலை செய்ய செயல்பாடு பயன்படுத்தப்படுகிறது. இங்கே, உள்ளீட்டு உரையின் ஒவ்வொரு வரியின் முதல் வார்த்தையைப் பயன்படுத்தி சிறிய எழுத்துக்கு மாற்றப்படும் தாழ்த்த() வழக்கமான வெளிப்பாடு வடிவத்துடன் செயல்பாடு மற்றும் பொருத்தம். டப்பர் () இந்த நோக்கத்திற்காக செயல்பாட்டையும் பயன்படுத்தலாம், இந்த விஷயத்தில், அனைத்து பெரிய எழுத்துக்களாலும் முறை வரையறுக்கப்பட வேண்டும். பின்வரும் எடுத்துக்காட்டில் வரையறுக்கப்பட்ட உரை தேடல் வார்த்தையைக் கொண்டுள்ளது, 'வலை வெளியீடாக அச்சிடப்படும் இரண்டு வரிகளில்.
$வெளியே எறிந்தார் மற்றும் மற்றும் 'வலை வடிவமைப்பு nஇணைய மேம்பாடு nகட்டமைப்பு ' | விழி 'டோலவர் ($ 0) ~ /^web /;'வெளியீடு:
AF உடன் NF (புலங்களின் எண்ணிக்கை) மாறி
NF உள்ளீட்டு உரையின் ஒவ்வொரு வரியிலும் உள்ள மொத்த புலங்களின் எண்ணிக்கையை கணக்கிட பயன்படும் ak கட்டளையின் உள்ளமைக்கப்பட்ட மாறுபாடு ஆகும். பல கோடுகள் மற்றும் பல சொற்களுடன் எந்த உரை கோப்பையும் உருவாக்கவும். input.txt முந்தைய எடுத்துக்காட்டில் உருவாக்கப்பட்ட கோப்பு இங்கே பயன்படுத்தப்படுகிறது.
கட்டளை வரியிலிருந்து NF ஐப் பயன்படுத்துதல்
இங்கே, முதல் கட்டளை உள்ளடக்கத்தை காட்ட பயன்படுகிறது input.txt கோப்பின் ஒவ்வொரு வரியிலும் உள்ள மொத்த புலங்களின் எண்ணிக்கையைக் காட்ட கோப்பு மற்றும் இரண்டாவது கட்டளை பயன்படுத்தப்படுகிறது NF மாறி.
$ cat input.txt$ awk '{print NF}' input.txt
வெளியீடு:
AK கோப்பில் NF ஐப் பயன்படுத்துதல்
என்ற பெயரில் ஒரு ஏவி கோப்பை உருவாக்கவும் எண்ணிக்கை கீழே கொடுக்கப்பட்ட ஸ்கிரிப்டுடன். இந்த ஸ்கிரிப்ட் எந்த உரைத் தரவிலும் செயல்படுத்தப்படும் போது மொத்த புலங்களைக் கொண்ட ஒவ்வொரு வரி உள்ளடக்கமும் வெளியீடாக அச்சிடப்படும்.
எண்ணிக்கை
{அச்சிட $0}{அச்சு'[மொத்த புலங்கள்:'NF']'}
பின்வரும் கட்டளையால் ஸ்கிரிப்டை இயக்கவும்.
$விழி -fcount.awk உள்ளீடு. உரைவெளியீடு:
awk gensub () செயல்பாடு
கெட்ஸப் () என்பது ஒரு குறிப்பிட்ட செயல்பாடாகும், இது குறிப்பிட்ட வரையறை அல்லது வழக்கமான வெளிப்பாடு முறையின் அடிப்படையில் சரம் தேட பயன்படுகிறது. இந்த செயல்பாடு வரையறுக்கப்பட்டுள்ளது 'காக்' இயல்பாக நிறுவப்படாத தொகுப்பு. இந்த செயல்பாட்டிற்கான தொடரியல் கீழே கொடுக்கப்பட்டுள்ளது. முதல் அளவுருவில் வழக்கமான வெளிப்பாடு முறை அல்லது தேடும் டிலிமிட்டர் உள்ளது, இரண்டாவது அளவுரு மாற்று உரையைக் கொண்டுள்ளது, மூன்றாவது அளவுரு தேடல் எவ்வாறு செய்யப்படும் என்பதைக் குறிக்கிறது மற்றும் கடைசி அளவுருவில் இந்த செயல்பாடு பயன்படுத்தப்படும் உரை உள்ளது.
தொடரியல்:
ஜென்ஸப்(regexp, மாற்று, எப்படி[, இலக்கு])நிறுவ பின்வரும் கட்டளையை இயக்கவும் gawk பயன்படுத்துவதற்கான தொகுப்பு கெட்ஸப் () awk கட்டளையுடன் செயல்படுகிறது.
$ sudo apt-get gawk ஐ நிறுவவும்'என்ற பெயரில் ஒரு உரை கோப்பை உருவாக்கவும் salesinfo.txt இந்த உதாரணத்தைப் பயிற்சி செய்ய பின்வரும் உள்ளடக்கத்துடன். இங்கே, புலங்கள் ஒரு தாவலால் பிரிக்கப்படுகின்றன.
salesinfo.txt
என் 700000உங்கள் 800000
புதன் 750000
200000 சேகரிக்கவும்
வெள்ளி 430000
சனிக்கிழமை 820000
என்ற எண் புலங்களைப் படிக்க பின்வரும் கட்டளையை இயக்கவும் salesinfo.txt அனைத்து விற்பனைத் தொகையையும் கோப்பு மற்றும் அச்சிடவும். இங்கே, மூன்றாவது அளவுரு, 'ஜி' உலகளாவிய தேடலைக் குறிக்கிறது. இதன் பொருள் கோப்பின் முழு உள்ளடக்கத்திலும் முறை தேடப்படும்.
$விழி '{x = gensub (' t ',' ',' G ', $ 2); printf x '+'} END {print 0} 'salesinfo.txt| பிசி -திவெளியீடு:
rand () செயல்பாட்டுடன் awk
வரிசை () 0 க்கும் அதிகமான மற்றும் 1 க்கும் குறைவான எந்த சீரற்ற எண்ணையும் உருவாக்க செயல்பாடு பயன்படுகிறது. எனவே, அது எப்போதும் ஒரு பின்னம் எண்ணை 1 ஐ விட குறைவாகவே உருவாக்கும். 1. printf () செயல்பாட்டைப் பயன்படுத்துவதற்கு தசமப் புள்ளிக்குப் பிறகு இரண்டு இலக்கங்களைக் கொண்ட ஒரு பின்ன எண் அச்சிடப்படும். பின்வரும் கட்டளையை நீங்கள் பல முறை இயக்கினால், ஒவ்வொரு முறையும் நீங்கள் வெவ்வேறு வெளியீட்டைப் பெறுவீர்கள்.
$விழி 'BEGIN {printf' எண் =%. 2f n ', ரேண்ட் ()*10}'வெளியீடு:
awk பயனர் வரையறுக்கப்பட்ட செயல்பாடு
முந்தைய எடுத்துக்காட்டுகளில் பயன்படுத்தப்படும் அனைத்து செயல்பாடுகளும் உள்ளமைக்கப்பட்ட செயல்பாடுகளாகும். ஆனால் எந்தவொரு குறிப்பிட்ட பணியையும் செய்ய உங்கள் ஏகே ஸ்கிரிப்டில் பயனர் வரையறுக்கப்பட்ட செயல்பாட்டை அறிவிக்கலாம். ஒரு செவ்வகத்தின் பரப்பளவைக் கணக்கிட தனிப்பயன் செயல்பாட்டை உருவாக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். இந்த பணியை செய்ய, 'என்ற பெயரில் ஒரு கோப்பை உருவாக்கவும் பகுதி பின்வரும் ஸ்கிரிப்டுடன். இந்த எடுத்துக்காட்டில், பயனர் வரையறுக்கப்பட்ட செயல்பாடு பெயரிடப்பட்டது பகுதி () உள்ளீட்டு அளவுருக்களின் அடிப்படையில் பரப்பளவைக் கணக்கிட்டு, பகுதியின் மதிப்பை வழங்கும் ஸ்கிரிப்டில் அறிவிக்கப்பட்டுள்ளது. கெட்லைன் பயனரிடமிருந்து உள்ளீட்டைப் பெற இங்கே கட்டளை பயன்படுத்தப்படுகிறது.
பகுதி
# பரப்பளவைக் கணக்கிடுங்கள்செயல்பாடுபகுதி(உயரம்,அகலம்){
திரும்பஉயரம்*அகலம்
}
# செயல்படுத்தத் தொடங்குகிறது
ஆரம்பம்{
அச்சுஉயரத்தின் மதிப்பை உள்ளிடவும்: '
கெட்லைன் எச்< '-'
அச்சுஅகலத்தின் மதிப்பை உள்ளிடவும்: '
கெட்லைன் டபிள்யூ< '-'
அச்சு'பகுதி ='பகுதி(ம,இல்)
}
ஸ்கிரிப்டை இயக்கவும்.
$விழி -fபகுதிவெளியீடு:
உதாரணம் என்றால் ak
மற்ற நிலையான நிரலாக்க மொழிகள் போன்ற நிபந்தனை அறிக்கைகளை ஏவி ஆதரிக்கிறது. மூன்று எடுத்துக்காட்டுகளைப் பயன்படுத்தி இந்தப் பிரிவில் மூன்று வகையான அறிக்கைகள் காட்டப்பட்டுள்ளன. என்ற உரை கோப்பை உருவாக்கவும் உருப்படிகள். உரை பின்வரும் உள்ளடக்கத்துடன்.
உருப்படிகள். உரை
HDD சாம்சங் $ 100சுட்டி A4Tech
அச்சுப்பொறி ஹெச்பி $ 200
உதாரணம் என்றால் எளிது :
அவர் பின்வரும் கட்டளையின் உள்ளடக்கத்தை வாசிப்பார் உருப்படிகள். உரை கோப்பு மற்றும் சரிபார்க்கவும் 3ஆர்.டி ஒவ்வொரு வரியிலும் புல மதிப்பு. மதிப்பு காலியாக இருந்தால், அது வரி எண்ணுடன் பிழை செய்தியை அச்சிடும்.
$விழி '{if ($ 3 ==' ') அச்சு' விலை புலம் 'NR} வரியில் இல்லைஉருப்படிகள். உரைவெளியீடு:
வேறு உதாரணம்:
பின்வரும் கட்டளை 3 என்றால் பொருளின் விலையை அச்சிடும்ஆர்.டிபுலம் வரியில் உள்ளது, இல்லையெனில், அது ஒரு பிழை செய்தியை அச்சிடும்.
$ awk'{if ($ 3 ==' ') அச்சு' விலை புலம் இல்லை 'இல்லையெனில் அச்சு 'உருப்படியின் விலை' $ 3} 'பொருட்களை.txt
வெளியீடு:
if-else-if எடுத்துக்காட்டு:
பின்வரும் கட்டளை முனையத்திலிருந்து இயக்கப்படும் போது அது பயனரிடமிருந்து உள்ளீட்டை எடுக்கும். நிபந்தனை உண்மை ஆகும் வரை உள்ளீடு மதிப்பு ஒவ்வொரு நிபந்தனையுடன் ஒப்பிடப்படும். எந்த நிபந்தனையும் உண்மையாகிவிட்டால், அது தொடர்புடைய தரத்தை அச்சிடும். உள்ளீட்டு மதிப்பு எந்த நிபந்தனையுடனும் பொருந்தவில்லை என்றால் அது தோல்வி என்று அச்சிடப்படும்.
$விழி 'ஆரம்பிக்க {அச்சிடவும்' குறி உள்ளிடவும்: 'கெட்லைன் குறி<'-'
(குறி> = 90) 'A+' அச்சிட
இல்லையெனில் (குறி> = 80) 'A' அச்சிடவும்
இல்லையெனில் (குறி> = 70) 'B+' அச்சிடவும்
மற்றபடி 'தோல்வி'} 'அச்சிடவும்
வெளியீடு:
awk மாறிகள்
AWK மாறியின் அறிவிப்பு ஷெல் மாறியின் அறிவிப்பைப் போன்றது. மாறியின் மதிப்பைப் படிப்பதில் வேறுபாடு உள்ளது. மதிப்பைப் படிக்க ஷெல் மாறிக்கு மாறி பெயருடன் ‘$’ சின்னம் பயன்படுத்தப்படுகிறது. ஆனால் மதிப்பைப் படிக்க '$' ஐ ak மாறியுடன் பயன்படுத்த வேண்டிய அவசியமில்லை.
எளிய மாறியைப் பயன்படுத்துதல்:
பின்வரும் கட்டளை பெயரிடப்பட்ட ஒரு மாறியை அறிவிக்கும் 'தளம்' மற்றும் அந்த சரத்திற்கு ஒரு சரம் மதிப்பு ஒதுக்கப்பட்டுள்ளது. மாறியின் மதிப்பு அடுத்த அறிக்கையில் அச்சிடப்பட்டுள்ளது.
$விழி 'BEGIN {site =' LinuxHint.com '; அச்சிடும் தளம்} 'வெளியீடு:
ஒரு கோப்பிலிருந்து தரவை மீட்டெடுக்க ஒரு மாறியைப் பயன்படுத்துதல்
பின்வரும் கட்டளை வார்த்தையைத் தேடும் 'பிரிண்டர்' கோப்பில் உருப்படிகள். உரை . கோப்பின் எந்த வரியும் தொடங்கினால் 'அச்சுப்பொறி பின்னர் அது அதன் மதிப்பைச் சேமிக்கும் 1ஸ்டம்ப் , 2nd மற்றும் 3ஆர்.டி புலங்கள் மூன்று மாறிகள். பெயர் மற்றும் விலை மாறிகள் அச்சிடப்படும்.
$ awk'/ அச்சுப்பொறி/ {பெயர் = $ 1; பிராண்ட் = $ 2; விலை = $ 3; அச்சிடு' உருப்படியின் பெயர் = 'பெயர்;'உருப்படியின் விலை =' விலை} 'பொருட்களை.txt
வெளியீடு:
awk வரிசைகள்
எண் மற்றும் அதனுடன் தொடர்புடைய வரிசைகள் இரண்டையும் ak இல் பயன்படுத்தலாம். AW இல் உள்ள வரிசை மாறி அறிவிப்பு மற்ற நிரலாக்க மொழிகளுக்கு சமம். வரிசைகளின் சில பயன்பாடுகள் இந்தப் பிரிவில் காட்டப்பட்டுள்ளன.
துணை வரிசை:
வரிசையின் அட்டவணை இணை வரிசைக்கு எந்த சரமாக இருக்கும். இந்த எடுத்துக்காட்டில், மூன்று உறுப்புகளின் துணை வரிசை அறிவிக்கப்பட்டு அச்சிடப்படுகிறது.
$விழி ஆரம்பம் {புத்தகங்கள் ['வலை வடிவமைப்பு'] = 'கற்றல் HTML 5';
புத்தகங்கள் ['வலை நிரலாக்கம்'] = 'PHP மற்றும் MySQL'
புத்தகங்கள் ['PHP கட்டமைப்பு'] = 'கற்றல் லராவெல் 5'
printf '%s n%s n%s n', புத்தகங்கள் ['வலை வடிவமைப்பு'], புத்தகங்கள் ['வலை நிரலாக்கம்'],
புத்தகங்கள் ['PHP கட்டமைப்பு']} '
வெளியீடு:
எண் வரிசை:
மூன்று தனிமங்களின் எண் வரிசை தாவலைப் பிரிப்பதன் மூலம் அறிவிக்கப்பட்டு அச்சிடப்படுகிறது.
$ awkஆரம்பம் {எண் [0] = 80;
எண் [1] = 55;
எண் [2] = 76;
# அச்சு வரிசை கூறுகள்
printf 'வரிசை மதிப்புகள்: %d t%d t%d n', எண் [0], எண் [1], எண் [2]; } '
வெளியீடு:
awk வளைய
மூன்று வகையான சுழல்கள் ak ஆல் ஆதரிக்கப்படுகின்றன. மூன்று எடுத்துக்காட்டுகளைப் பயன்படுத்தி இந்த சுழல்களின் பயன்கள் இங்கே காட்டப்பட்டுள்ளன.
சுழற்சியின் போது:
அதே நேரத்தில் பின்வரும் கட்டளையில் பயன்படுத்தப்படும் லூப் 5 முறை திரும்பும் மற்றும் பிரேக் ஸ்டேட்மெண்ட்டிற்கான லூப்பிலிருந்து வெளியேறும்.
$ விழி 'ஆரம்பம் {n = 1; அதே நேரத்தில் (n 5) இடைவேளை; அச்சு n; n ++}} 'வெளியீடு:
வளையத்திற்கு:
பின்வரும் awk கட்டளையில் பயன்படுத்தப்படும் லூப்பிற்கு 1 முதல் 10 வரை தொகை கணக்கிட்டு மதிப்பை அச்சிடும்.
$விழி 'ஆரம்பம் {தொகை = 0; க்கான (n = 1; n<= 10; n++) sum=sum+n; print sum }'வெளியீடு:
செய்ய வேண்டிய வளையம்:
பின்வரும் கட்டளையின் செய்ய வேண்டிய சுழற்சி 10 முதல் 5 வரையிலான அனைத்து சம எண்களையும் அச்சிடும்.
$விழி ஆரம்பம் {கவுண்டர் = 10; செய் {என்றால் (கவுண்டர்%2 == 0) அச்சு கவுண்டர்; எதிர்--}போது (எதிர்> 5)} '
வெளியீடு:
முதல் நெடுவரிசையை அச்சிட வேண்டும்
எந்த கோப்பின் முதல் நெடுவரிசையையும் அச்சில் $ 1 மாறி பயன்படுத்தி அச்சிடலாம். ஆனால் முதல் நெடுவரிசையின் மதிப்பில் பல சொற்கள் இருந்தால், முதல் நெடுவரிசையின் முதல் வார்த்தை மட்டுமே அச்சிடப்படும். ஒரு குறிப்பிட்ட டிலிமிட்டரைப் பயன்படுத்துவதன் மூலம், முதல் நெடுவரிசையை சரியாக அச்சிடலாம். என்ற உரை கோப்பை உருவாக்கவும் மாணவர்கள். உரை பின்வரும் உள்ளடக்கத்துடன். இங்கே, முதல் பத்தியில் இரண்டு சொற்களின் உரை உள்ளது.
மாணவர்கள். உரை
கனிஸ் ஃபதேமா 30வதுதொகுதிஅபிர் ஹொசைன் 35வதுதொகுதி
ஜான் ஆபிரகாம் 40வதுதொகுதி
எந்த வரையறையும் இல்லாமல் awk கட்டளையை இயக்கவும். முதல் பத்தியின் முதல் பகுதி அச்சிடப்படும்.
$விழி '{$ 1} அச்சிடவும்'மாணவர்கள். உரைபின்வரும் டிலிமிட்டருடன் awk கட்டளையை இயக்கவும். முதல் பத்தியின் முழுப் பகுதியும் அச்சிடப்படும்.
$விழி -எஃப் '\ s \ s' '{$ 1} அச்சிடவும்'மாணவர்கள். உரைவெளியீடு:
கடைசி நெடுவரிசையை அச்சிட வேண்டும்
$ (NF) எந்த கோப்பின் கடைசி நெடுவரிசையையும் அச்சிட variable பயன்படுத்தப்படலாம். பின்வரும் awk கட்டளைகள் கடைசிப் பகுதியையும் கடைசி நெடுவரிசையின் முழுப் பகுதியையும் அச்சிடும் மாணவர்கள். உரை கோப்பு.
$விழி '{அச்சு $ (NF)}'மாணவர்கள். உரை$விழி -எஃப் '\ s \ s' '{அச்சு $ (NF)}'மாணவர்கள். உரை
வெளியீடு:
க்ரீப் உடன் அக்
எந்தவொரு வழக்கமான வெளிப்பாட்டின் அடிப்படையிலும் ஒரு கோப்பில் உள்ளடக்கத்தைத் தேட லினக்ஸின் மற்றொரு பயனுள்ள கட்டளை grep ஆகும். Awk மற்றும் grep கட்டளைகளை எவ்வாறு ஒன்றாகப் பயன்படுத்தலாம் என்பது பின்வரும் எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது. பிடியில் பணியாளர் ஐடியின் தகவலை தேட கட்டளை பயன்படுத்தப்படுகிறது, ' 1002 'இருந்து பணியாளர். உரை கோப்பு. Grep கட்டளையின் வெளியீடு உள்ளீட்டு தரவாக awk க்கு அனுப்பப்படும். ஊழியர் ஐடியின் சம்பளத்தின் அடிப்படையில் 5% போனஸ் கணக்கிடப்பட்டு அச்சிடப்படும். 1002 ' ஏக் கட்டளையால்.
$பூனைஊழியர். உரை$பிடியில் '1002'ஊழியர். உரை| விழி -எஃப் ' t' '{$ 2 அச்சிட' $ '($ 3*5)/100' போனஸ் '}' கிடைக்கும்
வெளியீடு:
BASH கோப்புடன் awk
மற்ற லினக்ஸ் கட்டளைகளைப் போல, ak கட்டளையையும் ஒரு BASH எழுத்தில் பயன்படுத்தலாம். என்ற உரை கோப்பை உருவாக்கவும் வாடிக்கையாளர்கள். உரை பின்வரும் உள்ளடக்கத்துடன். இந்தக் கோப்பின் ஒவ்வொரு வரியிலும் நான்கு புலங்கள் பற்றிய தகவல்கள் உள்ளன. இவை வாடிக்கையாளரின் ஐடி, பெயர், முகவரி மற்றும் மொபைல் எண் ஆகியவற்றால் பிரிக்கப்பட்டவை '/ '
வாடிக்கையாளர்கள். உரை
AL4934 / Charles M Brunner / 4838 Beeghley Street, Huntsville, Alabama / 256-671-7942CA5455 / வர்ஜீனியா S Mota / 930 Bassel Street, VALLECITO, கலிபோர்னியா / 415-679-5908
IL4855 / ஆன் ஏ நீல் / 1932 பேட்டர்சன் ஃபோர்க் சாலை, சிகாகோ, இல்லினாய்ஸ் / 773-550-5107
என்ற பேஷ் கோப்பை உருவாக்கவும் உருப்படியை_தேடு. பேஷ் பின்வரும் ஸ்கிரிப்டுடன். இந்த ஸ்கிரிப்ட்டின் படி, மாநில மதிப்பு பயனரிடமிருந்து எடுக்கப்பட்டு தேடப்படும் வாடிக்கையாளர்கள். உரை மூலம் கோப்பு பிடியில் கட்டளை மற்றும் உள்ளீடாக awk கட்டளைக்கு அனுப்பப்பட்டது. Awk கட்டளை வாசிக்கப்படும் 2nd மற்றும் 4வது ஒவ்வொரு வரியின் புலங்களும். எந்த மாநில மதிப்புடன் உள்ளீட்டு மதிப்பு பொருந்தினால் வாடிக்கையாளர்கள். உரை கோப்பு பின்னர் அது வாடிக்கையாளரின் அச்சிடப்படும் பெயர் மற்றும் கைபேசி எண் இல்லையெனில், அது செய்தியை அச்சிடும் வாடிக்கையாளர் இல்லை .
உருப்படியை_தேடு. பேஷ்
#!/பின்/பேஷ்வெளியே எறிந்தார் 'மாநிலப் பெயரை உள்ளிடவும்:'
படிநிலை
வாடிக்கையாளர்கள்='பிடியில் '$ மாநிலம்'வாடிக்கையாளர்கள். உரை| விழி -எஃப் '/' '{அச்சு' வாடிக்கையாளர் பெயர்: '$ 2,',
மொபைல் எண்: '$ 4}''
என்றால் [ '$ வாடிக்கையாளர்கள்' !='' ];பிறகு
வெளியே எறிந்தார் $ வாடிக்கையாளர்கள்
வேறு
வெளியே எறிந்தார் 'வாடிக்கையாளர் இல்லை'
இரு
வெளியீடுகளைக் காட்ட பின்வரும் கட்டளைகளை இயக்கவும்.
$பூனைவாடிக்கையாளர்கள். உரை$பேஷ்உருப்படியை_தேடு. பேஷ்
வெளியீடு:
செடியுடன் விழி
லினக்ஸின் மற்றொரு பயனுள்ள தேடல் கருவி செட் . இந்த கட்டளை எந்த கோப்பின் உரையையும் தேடுவதற்கும் மாற்றுவதற்கும் பயன்படுத்தப்படலாம். பின்வரும் உதாரணம் உடன் awk கட்டளையின் பயன்பாட்டைக் காட்டுகிறது செட் கட்டளை இங்கே, sed கட்டளை அனைத்து ஊழியர்களின் பெயர்களையும் 'என்று தொடங்கும். ஜெ 'மற்றும் உள்ளீடாக awk கட்டளைக்கு செல்கிறது. awk ஊழியரை அச்சடிக்கும் பெயர் மற்றும் ஐடி வடிவமைத்த பிறகு.
$பூனைஊழியர். உரை$செட் -என் '/ஜே/பி'ஊழியர். உரை| விழி -எஃப் ' t' '{printf'%s (%s) n ', $ 2, $ 1}'
வெளியீடு:
முடிவுரை:
தரவை சரியாக வடிகட்டிய பிறகு எந்த அட்டவணை அல்லது வரையறுக்கப்பட்ட தரவின் அடிப்படையில் பல்வேறு வகையான அறிக்கைகளை உருவாக்க நீங்கள் awk கட்டளையைப் பயன்படுத்தலாம். இந்த டுடோரியலில் காட்டப்பட்டுள்ள எடுத்துக்காட்டுகளைப் பயிற்சி செய்தபின், ak கட்டளை எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் அறிய முடியும்.