Faydalı Komutlar Arşivi
(→AWK) |
AdminGMTTR (Mesaj | Katkılar) K (Seocalismasi tarafından yapılan değişiklikler geri alınarak, AdminGMTTR tarafından değiştirilmiş önceki sürüm geri getirildi.) |
(3 kullanıcı tarafından yapılan 4 ara revizyon gösterilmiyor) |
19:03, 18 Eylül 2010 itibarı ile sayfanın şu anki hâli
Konu başlıkları |
[değiştir] AWK
C tabanlı bir program olan awk basitleştirilmiş bir programla dili olarak görülebilir. Komut satırından veya script içinde çalışabilir. Burada çok temel bir kaç özelliği verilecektir. Daha fazla bilgiyi GNU sayfasından öğrenebilirsiniz.
Bazı Parametreler:
- ' : awk komutları tırnak işaretleri arasında yazılır. En sonda ise işlenecek dosya adı bulunur.
- $: Veri dosyasındaki kolonları (değişken olarak) temsil eder. HErhangi bir değişiklik yapılmaz ise kolonlar boşluklarla ayrılmış kabul edilir. $0: Tüm satır, $1: Satırın 1. kolonu, $2, Satırın 2. kolonu.
- NR: O anda işlenen satırın numarası
Örnekler:
- 200 satırlık bir veri dosyasında her 5 satırda bir veri okur
awk '{for(i=1; i<200;i=i+5) if (NR==i )print $0}' afarveldata_geo.dat > afarveldata2_geo.dat
- Sadece 2, 3 ve 4. kolonlarını almak: $ ile kolon numarası belirtilir. virgül kullanılmaz ise kolonlardaki değerler birbirlerine yapışırlar.
awk '{ print $2,$3,$4}' a.dat
- İlk 5 satırı atarak atarak:
awk ' NR>5 { print $2,$3,$4,$1}' a.dat
- Matematik işlem (birçok matematik işlemi yapılabilir):
awk ' { print $2/1.2 , ($3+5.4)/2 , $4^2 , log($1)}' a.dat
- Dışarıdan parametre girişi -v değişkeni ile yapılabilir.
@ sayi = 3 awk -v par=$sayi ' NR>3 && NR<8 {print NR,"::",$4,log($4),"Sayi:",$4*par }' deprem.dat
- IF şartı ile seçim yapılabilir.
awk ' { if ($4==6.5 || $4==5.5 ) print NR,"::",$4,$5 }' deprem.dat
- .txt ile biten bütün dosyaların içinde "ara" kelimesini "bul" ile değiştir.
awk '{gsub("ara", "bul", $0); print > FILENAME}' *.txt
- Satırları sondan başa doğru yaz
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' deprem.dat
- Satır sayısını bul
awk 'END{print NR}' deprem.dat
[değiştir] CAT
Özellikle ascii dosyaları birleştirmek için kullanılır.
Örnekler:
a.dat ve b.dat aynı formatta iki dosya ise buları c.dat olarak birleştirmek için
cat a.dat b.dat > c.dat
[değiştir] COLRM
Dosya içinde istenilen kolonları siler
colrm 3 5 < a.txt
[değiştir] CUT / PASTE
CUT ile dosya icindeki istenilen kolonlari alınabilir. CUT programıyla veri kolonlarınının daha esnek ayrılması için -d parametesi kullanılır. PASTE ile iki ve ya daha fazla dosya yan yana yapıştırılabilir. Aşağıdaki örnekte a.dat dosyası içindeki herbir satır aralarındaki - karakteri kullanılarak ayrılır ve bunlardan 2. kısımda (-f2) kalan değerler bir dosyaya yazilir. Aynı şekilde b.dat dosyasıda parçalanır ve 3. kolon değerleri yazılır. Diske yazılan bu iki dosyanın satırları PASTE programıyla yan yana gelecek şekilde yeni bir dosyaya yazılır.
cut -d"-" -f2 a.dat > secme1.dat cut -d"-" -f3 b.dat > secme2.dat paste secme1.dat secme2.dat > secme.dat
[değiştir] DOS2UNIX / UNIX2DOS
dos2unix : ASCII dos formatını unix formatına dönüştürür. unix2dos : ASCII unix formatını dos formatına dönüştürür.
dos2unix dos.txt unix2dos linux.txt
[değiştir] HEAD
Dosyanın istenilen miktardaki ilk satirlarini ekrana doker
head -6 a.txt # ilk 6 satir gosterilir.
[değiştir] GREP
Bir karakter dizisini dosyalar içinde arar ve uygun olan satırları gösterir.
Örnekler:
"nokta" kelimesini a.dat içinde nerde olduğunu bulmak için
grep -e nokta a.dat
[değiştir] MORE
Dosya içeriğini istenilen kurallara göre ekrana döker
more +6 a.txt #ilk 6 satir gosterilmez
[değiştir] NL
Satırları numaralandırır.
nl a.txt
[değiştir] SED
Dosya içindeki karakterler üzerinde toplu yazım işlemi yapar.
sed -e 's/\./,/g' a.txt > b.txt
[değiştir] SORT
Sıralama yapar.
sort a.txt
[değiştir] SPLIT
Dosyayı istenilen satır vb. için parçalara böler
split -l 50 a.txt X
[değiştir] TAIL
Dosyanın istenilen miktardaki son satirlarini ekrana doker
tail -6 a.txt # son 6 satir gosterilir
[değiştir] WC
Dosya içinde satır/karakter/kelime sayılarını verir.
wc -l a.txt
* Bu bilgilerin bir kısmı GMTtr sitesinden ve Onur Tan GMT kurs dökümanlarından alınmıştır.