Linux kullanıcıları için kullanışlı bir komut bütünü, Satır İçindeki Belli Kelimeleri Silme için;
1 |
find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} \; -exec sed -i '/./d' {} \; |
Linux kullanıcıları için kullanışlı bir komut bütünü, Satır İçindeki Belli Kelimeleri Silme için;
1 |
find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l {} \; -exec sed -i '/./d' {} \; |
Bir dosyada belirli bir patern geçen satırı silmenin *nix sistemlerde bir çok yöntem ve araç kullanabilirsiniz.Bunlardan bazılarını aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@omeroner ~]$cat sed_data omer oner selim eda ceren mihriban erol kemal deniz kerem mahmut [root@omeroner ~]$sed -i '/omer/d' sed_data [root@omeroner ~]$cat sed_data ceren mihriban erol kemal deniz kerem mahmut [root@unitednations ~]$sed -i '/omer/Id' sed_data [root@omeroner ~]$cat sed_data ceren mihriban erol kemal deniz kerem mahmut [root@unitednations ~]$ |
1 2 3 4 5 6 7 8 9 |
[root@omeroner ~]$cat dosyaadi ceren mihriban erol kemal deniz kerem mahmut omer oner selim eda [root@unitednations ~]$grep -v "omer" dosyaadi > dosyaadi2; mv dosyaadi2 dosyaadi mv: overwrite `sed_data'? y [root@unitednations ~]$cat dosyaadi ceren mihriban erol kemal deniz kerem mahmut |
Dosyamızın satırlarında birden fazla boşluğu tek boşluk ile değiştirmek istersek aşağıdaki kalıbı kullanabiliriz.
1 |
sed 's/ */ /g' DOSYA |
1 2 3 4 5 6 7 8 |
[root@omeroner ~]$cat sed_data omer oner selim eda ceren mihriban erol kemal deniz kerem mahmut [root@omeroner ~]$sed 's/ */ /g' sed_data omer oner selim eda ceren mihriban erol kemal deniz kerem mahmut |
1 2 3 4 5 |
[root@omeroner ~]$sed 's/ */ /g' sed_data o m e r o n e r s e l i m e d a c e r e n m i h r i b a n e r o l k e m a l d e n i z k e r e m m a h m u t [root@unitednations ~]$ |
Cümle içerisinde geçen her kelimenin ilk harflerini büyük yapmak istendiğinde , *nix ortamında farklı yöntem/araçlar ile bu işlem yapılabilir.
1 2 3 |
[root@omeroner~]$cumle="hayata karşı serin duruş..." [root@omeroner~]$echo $cumle | sed 's/\([a-z]\)\([a-zA-Z0-9]*\)/\u\1\2/g' Hayata Karşı Serin Duruş... |
1 2 3 |
[root@unitednations ~]$cumle="hayata karşı serin duruş..." [root@unitednations ~]$echo $cumle | awk '{ for ( i=1; i <= NF; i++) { sub(".", substr(toupper($i),1,1) , $i) } print }' Hayata Karşı Serin Duruş... |
Bir dosyada bulunan son satırları silmek isteyebiliriz. Bunun için aşağıdaki kalıbı kullanabiliriz.
1 |
sed -r 's/.{1}$//' |
1 2 3 4 5 6 7 8 9 10 11 |
[root@unitednations ~]$cat sed_data omer oner 2000 3 kemal ozlu 2001 5 can urasli 300 4 omer oner 4000 5 [root@omeroner ~]$sed -r 's/.{1}$//' sed_data omer oner 2000 kemal ozlu 2001 can urasli 300 omer oner 4000 [root@omeroner ~]$ |
Herhangi bir dosyada belli bir patern’in geçtiği satırın altına yeni bir satır eklemek istediğinizde sed imdadınıza yetişir. Bunun için aşağıdaki kalıbı kullanabilirsiniz. Sed ile Belli Patern’in Altina Yeni Satır Ekleme için;
1 |
sed '/PATERN/a yeni_satır' DOSYA_ADI |
Örneğin aşağıdaki örnekte sed_data isimli dosyasındaki omer patern’i geçen satırının altına kadir oner 300 1 satırını ekliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@omeroner~]$cat sed_data omer oner 2000 3 kemal ozlu 2001 5 can urasli 300 4 omer oner 4000 5 [root@omeroner~]$sed '/omer/a kadir oner 300 1' sed_data omer oner 2000 3 kadir oner 300 1 kemal ozlu 2001 5 can urasli 300 4 omer oner 4000 5 kadir oner 300 1 [root@omeroner~]$ |
Unix ve Türevlerinde Dosyadaki Sayıların Toplamını Hesaplatma için birden fazla yöntem mevcut.
1 2 3 4 5 6 7 8 |
[root@omeroner /tmp]$cat /tmp/file.txt 286 255564800 609 146 671290 [root@omeroner /tmp]$ |
Yukarıda belirttilen dosyadaki tüm numaraların toplanması için;
1 2 |
[root@omeroner /tmp]$awk '{s+=$0} END {print s}' /tmp/file.txt 256237131 |