sed - (Stream EDitor) data axınları üzərində dəyişiklik edə biləcəyiniz bir əmr. Məsələn faylda olan 'windows' sözlərini 'linux' sözü ilə əvəz etmək istəyiriksə:
kali@kali:~$ sed -i 's/windows/linux/g' fayl_adi
Yalnız fayllarda deyil, keçən məqalələrdə olduğu kimi başqa bir əmrin verdiyi outputda da dəyişikliklər edə bilərik. Bunun üçün yazdığımız əmrdən sonra piping işlətməliyik.
cut - Datanı sütunlara görə bölmək üçün əmr.
Deyək ki əlinizdə aşağıdakı kimi bir data var:
Yuxarıda biz cat əmri köməkliyi ilə datamızı terminala çıxarıb sonra əmrləri bir birinə qoşmaqla (piping) ikinci əmri yerinə yetirdik. Əmrdə olan -d - delimiter (ayırıcı), -f - field (hissə) mənası daşıyır. Bununla da biz kodda gələn datadakı hər sətri boşluqlara əsasən (-d" ") hissələrə ayırmasını və alınmış 4 hissədən yalnız 3-cüsünü (-f 3) istədiyimizi bildirdik.
awk - bu mətnlər üzərində redaktə etmək üçün daha çox təkmilləşmiş bir əmrdir. Hətta belə demək olarsa, özünə məxsus proqramlaşdırma dili var. Aşağıda standart bir awk əmrini görə bilərsiniz.
Əgər biz bu faylda /register endpointinə daxil olmuş ip addresslərini görmək istəyiriksə, belə olan halda aşağıdakı kimi əmr yazmaq işimizə yarayacaqdır:
1-ci sətrdə də göründüyü kimi awk əmrini istifadə edərək əvvəlcə test faylının içərisində register ifadəsi olan sətirləri seçməsini istədik - /register/ . Buna görə də 3 sətir seçdi. Sonra isə biz yalnız IP adreslərin seçilməsi üçün seçilən cümlələrin hər birinin 3-cü hissəsini print etməsini istədik - {print $3;}. Niyə məhz 3? AWK əmri default (standart) olaraq seçdiyi hissələri boşluqlara əsasən hissələrə ayırır. Eynən aşağıda olduğu kimi:
İndi isə biz IP adreslərlə yanaşı tarixi də görmək istəyiriksə onda deməli bizə 3-cü hissə ilə yanaşı həm də 1-ci hissə də lazımdır. İlk yazdığımız awk əmrini aşağıdakı kimi dəyişməklə məqsədimizə nail ola bilərik: