`Awk` கட்டளையைப் பயன்படுத்தி நெடுவரிசைகளின் வரம்பை அச்சிடுவது எப்படி

How Print Range Columns Using Awk Command



லினக்ஸில் அட்டவணை தரவிலிருந்து பல நெடுவரிசைகளை அச்சிடப் பயன்படும் பல கட்டளைகளில் `awk` கட்டளை ஒன்றாகும். `Awk` கட்டளையை முனையத்திலிருந்து நேரடியாக` awk` ஸ்கிரிப்ட் கோப்பை இயக்குவதன் மூலம் பயன்படுத்தலாம். இந்த டுடோரியலில், அட்டவணை தரவிலிருந்து நெடுவரிசைகளின் வரம்பை எவ்வாறு அச்சிடுவது என்பதை நாங்கள் உங்களுக்குக் காண்பிப்போம்.

எடுத்துக்காட்டு 1: கட்டளை வெளியீட்டில் இருந்து நெடுவரிசைகளின் வரம்பை அச்சிடுங்கள்

பின்வரும் கட்டளை கட்டளை வெளியீட்டில் இருந்து இரண்டாவது, மூன்றாவது மற்றும் நான்காவது நெடுவரிசைகளை அச்சிடும், 'Ls -l '. இங்கே, நெடுவரிசை எண்கள் வெளிப்படையாகக் கூறப்பட்டுள்ளன, ஆனால் அதே வரிசை நெடுவரிசைகளை அச்சிடுவதற்கான திறமையான கட்டளை அடுத்த எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது.







$ls -தி | விழி '{$ 2, $ 3, $ 4} அச்சிடவும்'

மேலே உள்ள கட்டளையால் பின்வரும் வெளியீடு தயாரிக்கப்படுகிறது.





எடுத்துக்காட்டு 2: a ஐப் பயன்படுத்தி ஒரு கோப்பிலிருந்து நெடுவரிசைகளின் வரம்பை அச்சிடுக க்கான வளையம்

இந்த எடுத்துக்காட்டு மற்றும் இந்த டுடோரியலில் உள்ள மற்ற எடுத்துக்காட்டுகளைப் பின்பற்ற, ஒரு உரை கோப்பை உருவாக்கவும் மதிப்பெண்கள் பின்வரும் உள்ளடக்கத்துடன் :





ஐடி CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58

பின்வரும் `awk` கட்டளை முதல் மூன்று பத்திகள் மதிப்பெண்களை அச்சடிக்கும். Txt. தி க்கான நெடுவரிசை மதிப்புகளை அச்சிட லூப் பயன்படுத்தப்படுகிறது, மேலும் லூப் மூன்று படிகளை உள்ளடக்கியது. தி NF மாறி கோப்பின் மொத்த புலங்கள் அல்லது நெடுவரிசைகளின் எண்ணிக்கையைக் குறிக்கிறது.

$பூனைமதிப்பெண்கள்
$விழி 'க்கு (i = 1; i<=NF-1;i++) printf $i' '; print ''}'மதிப்பெண்கள்

கட்டளையை இயக்குவதன் மூலம் பின்வரும் வெளியீடு தயாரிக்கப்படும். வெளியீடு மாணவரை காட்டுகிறது ஐடிகள் மற்றும் அதற்கான மதிப்பெண்கள் CSE203 மற்றும் CSE102 .



எடுத்துக்காட்டு 3: தொடக்க மற்றும் முடிவு மாறிகளை வரையறுப்பதன் மூலம் நெடுவரிசைகளின் வரம்பை அச்சிடவும்

பின்வரும் `awk` கட்டளை ஆரம்பிப்பதன் மூலம் கட்டளை வெளியீடு 'ls -l' இலிருந்து முதல் மூன்று நெடுவரிசைகளை அச்சிடும். தொடங்கி மற்றும் முடிவு மாறிகள். இங்கே, இதன் மதிப்பு தொடங்கி மாறி 1, மற்றும் மதிப்பு முடிவு மாறி 3 ஆகும். இந்த மாறிகள் நெடுவரிசை மதிப்புகளை அச்சிட ஒரு சுழற்சியில் மீண்டும் மீண்டும் செய்யப்படுகின்றன.

$ls -தி | விழி 'ஆரம்பம் {முதல் = 1; கடைசி = 3}
{க்கு (i = முதல்; i

கட்டளையை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும். வெளியீடு வெளியீட்டின் முதல் மூன்று நெடுவரிசை மதிப்புகளைக் காட்டுகிறது, 'ls -l'.

எடுத்துக்காட்டு 4: ஒரு கோப்பிலிருந்து ஒரு நெடுவரிசைகளை வடிவமைத்தல் மூலம் அச்சிடவும்

பின்வரும் `awk` கட்டளை முதல் மூன்று நெடுவரிசைகளை அச்சிடும் மதிப்பெண்கள் பயன்படுத்தி printf மற்றும் வெளியீடு புலம் பிரிப்பான் ( OFS ) இங்கே, ஃபார் லூப் மூன்று படிகளை உள்ளடக்கியது, மேலும் மூன்று நெடுவரிசைகள் கோப்பில் இருந்து வரிசையாக அச்சிடப்படும். OFS நெடுவரிசைகளுக்கு இடையில் இடைவெளி சேர்க்க இங்கே பயன்படுத்தப்படுகிறது. சுழற்சியின் எதிர் மதிப்பு (i) சமமாக இருக்கும் போது முடிவு மாறி, பின்னர் ஒரு புதிய வரி ( n) உருவாக்கப்பட்டது.

$பூனைமதிப்பெண்கள்
$விழி -வி தொடங்கு=1 -வி முடிவு=3 '{க்கு (i = தொடக்கம்; i<=end;i++) printf('%s%s',
$ i, (i == முடிவு)? ' n': OFS)} '
மதிப்பெண்கள்

மேலே உள்ள கட்டளைகளை இயக்கிய பின் பின்வரும் வெளியீடு உருவாக்கப்படும்.

எடுத்துக்காட்டு 5: நிபந்தனை அறிக்கையைப் பயன்படுத்தி ஒரு கோப்பிலிருந்து நெடுவரிசைகளின் வரம்பை அச்சிடுங்கள்

பின்வரும் `awk` கட்டளை ஒரு கோப்பிலிருந்து முதல் மற்றும் கடைசி நெடுவரிசைகளை a for loop மற்றும் if அறிக்கையைப் பயன்படுத்தி அச்சிடும். இங்கே, for loop நான்கு படிகளை உள்ளடக்கியது. தி தொடங்கி மற்றும் முடிவு if நிபந்தனையைப் பயன்படுத்தி கோப்பில் இருந்து இரண்டாவது மற்றும் மூன்றாவது நெடுவரிசைகளைத் தவிர்ப்பதற்கு மாறிகள் ஸ்கிரிப்டில் பயன்படுத்தப்படுகின்றன. நெடுவரிசைகளுக்கு இடையில் இடைவெளியை சேர்க்க OFS மாறி பயன்படுத்தப்படுகிறது, மேலும் கடைசி நெடுவரிசையை அச்சிட்ட பிறகு புதிய வரிசையை ( n) சேர்க்க ORS மாறி பயன்படுத்தப்படுகிறது.

$பூனைமதிப்பெண்கள்
$விழி -வி தொடங்கு=2 -வி முடிவு=3 'க்கு (i = 1; i<=NF;i++)
என்றால் (i> = தொடங்கு && i<=end) continue;
வேறு printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} '
மதிப்பெண்கள்

மேலே உள்ள கட்டளைகளை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும். வெளியீடு மதிப்பெண்களின் முதல் மற்றும் கடைசி நெடுவரிசைகளைக் காட்டுகிறது.

எடுத்துக்காட்டு 6: NF மாறியைப் பயன்படுத்தி ஒரு கோப்பிலிருந்து நெடுவரிசைகளின் வரம்பை அச்சிடவும்

பின்வரும் `awk` கட்டளை NF மாறி பயன்படுத்தி கோப்பின் முதல் மற்றும் கடைசி நெடுவரிசைகளை அச்சிடும். நெடுவரிசை மதிப்புகளை அச்சிட சுழல்கள் அல்லது நிபந்தனை அறிக்கைகள் பயன்படுத்தப்படவில்லை. NF புலங்களின் எண்ணிக்கையைக் குறிக்கிறது. மதிப்பெண்களில் நான்கு நெடுவரிசைகள் உள்ளன. $ (NF-3) முதல் நெடுவரிசையை வரையறுக்கிறது, மேலும் $ NF கடைசி நெடுவரிசையைக் குறிக்கிறது.

$பூனைமதிப்பெண்கள்
$விழி '{அச்சு $ (NF-3)' '$ NF}'மதிப்பெண்கள்

மேலே உள்ள கட்டளைகளை இயக்குவதன் மூலம் பின்வரும் வெளியீடு தயாரிக்கப்படுகிறது. வெளியீடு மதிப்பெண்களின் முதல் மற்றும் கடைசி நெடுவரிசைகளைக் காட்டுகிறது.

எடுத்துக்காட்டு 7: ஒரு கோப்பிலிருந்து நெடுவரிசைகளின் வரம்பை அடி மூலக்கூறு () மற்றும் குறியீட்டு () ஐப் பயன்படுத்தி அச்சிடவும்

முதல் வாத மதிப்பில் இரண்டாவது வாதம் மதிப்பு இருந்தால் குறியீட்டு () செயல்பாடு ஒரு நிலையை அளிக்கிறது. துணை () செயல்பாடு மூன்று வாதங்களை எடுக்கலாம். முதல் வாதம் ஒரு சரம் மதிப்பு, இரண்டாவது வாதம் தொடக்க நிலை, மற்றும் மூன்றாவது வாதம் நீளம். கீழ்க்கண்ட கட்டளையில் subr () இன் மூன்றாவது வாதம் தவிர்க்கப்பட்டது. `Awk` கட்டளையில் நெடுவரிசை $ 1 இல் தொடங்குவதால், குறியீட்டு () செயல்பாடு $ 3 ஐத் தரும், மேலும் கட்டளை $ 3 முதல் $ 4 வரை அச்சிடப்படும்.

$பூனைமதிப்பெண்கள்
$விழி '{பிரிண்ட் சப்ஸ்ட்ர் ($ 0, இன்டெக்ஸ் ($ 0, $ 3))}'மதிப்பெண்கள்

மேலே உள்ள கட்டளைகளை இயக்குவதன் மூலம் பின்வரும் வெளியீடு தயாரிக்கப்படும்.

எடுத்துக்காட்டு 8: printf ஐப் பயன்படுத்தி ஒரு கோப்பிலிருந்து தொடர்ச்சியான நெடுவரிசைகளை அச்சிடுங்கள்

பின்வரும் `awk` கட்டளை 10 எழுத்துகளுக்கு போதுமான இடத்தை அமைப்பதன் மூலம் மதிப்பெண்களின் முதல், இரண்டாவது மற்றும் மூன்றாவது நெடுவரிசைகளை அச்சடிக்கும்.

$பூனைமதிப்பெண்கள்
$விழி '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'மதிப்பெண்கள்

மேலே உள்ள கட்டளைகளை இயக்குவதன் மூலம் பின்வரும் வெளியீடு தயாரிக்கப்படும்.

முடிவுரை

கட்டளை வெளியீடு அல்லது கோப்பிலிருந்து நெடுவரிசைகளின் வரம்பை அச்சிட பல்வேறு வழிகள் உள்ளன. அட்டவணை தரவிலிருந்து உள்ளடக்கத்தை அச்சிட லினக்ஸ் பயனர்களுக்கு `awk` கட்டளை எவ்வாறு உதவும் என்பதை இந்த டுடோரியல் காட்டுகிறது.