Faydalı Komutlar Arşivi
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.) |
|||
(6 kullanıcı tarafından yapılan 12 ara revizyon gösterilmiyor) | |||
1. satır: | 1. satır: | ||
− | == | + | == 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 [http://www.gnu.org/software/gawk/manual/gawk.html 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 | *200 satırlık bir veri dosyasında her 5 satırda bir veri okur | ||
− | <bash> | + | <bash>awk '{for(i=1; i<200;i=i+5) if (NR==i )print $0}' afarveldata_geo.dat > afarveldata2_geo.dat </bash> |
− | awk '{for(i=1; i<200;i=i+5) if (NR==i )print $0}' afarveldata_geo.dat > afarveldata2_geo.dat | + | |
− | </bash> | + | * Sadece 2, 3 ve 4. kolonlarını almak: $ ile kolon numarası belirtilir. virgül kullanılmaz ise kolonlardaki değerler birbirlerine yapışırlar. |
+ | <bash>awk '{ print $2,$3,$4}' a.dat </bash> | ||
+ | |||
+ | * İlk 5 satırı atarak atarak: | ||
+ | <bash>awk ' NR>5 { print $2,$3,$4,$1}' a.dat </bash> | ||
+ | |||
+ | *Matematik işlem (birçok matematik işlemi yapılabilir): | ||
+ | <bash>awk ' { print $2/1.2 , ($3+5.4)/2 , $4^2 , log($1)}' a.dat</bash> | ||
+ | |||
+ | * Dışarıdan parametre girişi -v değişkeni ile yapılabilir. | ||
+ | <bash> @ sayi = 3 | ||
+ | awk -v par=$sayi ' NR>3 && NR<8 {print NR,"::",$4,log($4),"Sayi:",$4*par }' deprem.dat </bash> | ||
+ | |||
+ | * IF şartı ile seçim yapılabilir. | ||
+ | <bash> awk ' { if ($4==6.5 || $4==5.5 ) print NR,"::",$4,$5 }' deprem.dat </bash> | ||
+ | |||
+ | * .txt ile biten bütün dosyaların içinde "ara" kelimesini "bul" ile değiştir. | ||
+ | <bash> awk '{gsub("ara", "bul", $0); print > FILENAME}' *.txt </bash> | ||
+ | |||
+ | *Satırları sondan başa doğru yaz | ||
+ | <bash> awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' deprem.dat </bash> | ||
+ | |||
+ | * Satır sayısını bul | ||
+ | <bash> awk 'END{print NR}' deprem.dat </bash> | ||
+ | |||
+ | *[[Diğer örnekler]] | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | <bash>cat a.dat b.dat > c.dat </bash> | ||
+ | |||
+ | |||
+ | == COLRM == | ||
+ | Dosya içinde istenilen kolonları siler | ||
+ | <bash>colrm 3 5 < a.txt</bash> | ||
+ | |||
+ | |||
+ | == 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. | ||
+ | |||
+ | <bash>cut -d"-" -f2 a.dat > secme1.dat | ||
+ | cut -d"-" -f3 b.dat > secme2.dat | ||
+ | paste secme1.dat secme2.dat > secme.dat </bash> | ||
+ | |||
+ | |||
+ | == 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. | ||
+ | <bash>dos2unix dos.txt | ||
+ | unix2dos linux.txt </bash> | ||
+ | |||
+ | |||
+ | == HEAD == | ||
+ | Dosyanın istenilen miktardaki ilk satirlarini ekrana doker | ||
+ | <bash>head -6 a.txt # ilk 6 satir gosterilir. </bash> | ||
+ | |||
+ | |||
+ | == 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 | ||
+ | <bash>grep -e nokta a.dat</bash> | ||
+ | |||
+ | |||
+ | == MORE == | ||
+ | Dosya içeriğini istenilen kurallara göre ekrana döker | ||
+ | <bash>more +6 a.txt #ilk 6 satir gosterilmez </bash> | ||
+ | |||
+ | |||
+ | == NL == | ||
+ | Satırları numaralandırır. | ||
+ | <bash>nl a.txt</bash> | ||
+ | |||
+ | |||
+ | == SED == | ||
+ | Dosya içindeki karakterler üzerinde toplu yazım işlemi yapar. | ||
+ | <bash>sed -e 's/\./,/g' a.txt > b.txt </bash> | ||
+ | |||
+ | |||
+ | == SORT == | ||
+ | Sıralama yapar. | ||
+ | <bash>sort a.txt</bash> | ||
+ | |||
+ | |||
+ | == SPLIT == | ||
+ | Dosyayı istenilen satır vb. için parçalara böler | ||
+ | <bash>split -l 50 a.txt X</bash> | ||
+ | |||
+ | |||
+ | == TAIL == | ||
+ | Dosyanın istenilen miktardaki son satirlarini ekrana doker | ||
+ | <bash>tail -6 a.txt # son 6 satir gosterilir </bash> | ||
+ | |||
+ | |||
+ | == WC == | ||
+ | Dosya içinde satır/karakter/kelime sayılarını verir. | ||
+ | <bash>wc -l a.txt</bash> | ||
+ | |||
+ | |||
+ | ''* Bu bilgilerin bir kısmı [http://www.atag.itu.edu.tr/GMTtr/ GMTtr] sitesinden ve [[Onur Tan]] GMT kurs dökümanlarından alınmıştır. '' |
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.