sed (string editor) dosyalarda satır islemleri yaparken cok yararlı.
örneğin bir dosya içinde geçen iki kelime arasını yazdırmak için;
sed -n '/kelime1/,/kelime2/p' dosyaadı
bir dosya içindeki tüm kelime1'leri kelime2 yapmak için;
sed 's/kelime1/kelime2/g' dosyaadı
bir dosyada kelime1 geçen satırları silmek için;
sed '/kelime1/d' dosyaadı
bir dosyanın her satırının başına bir kelime koymak için;
sed 's/^/kelime/g' dosyaadı
yazmak yeterli.
Monday, July 28, 2008
Thursday, July 24, 2008
Buyuk boyutta datalari duzenlemek, istedigim formata sokmak icin sed'i (String editor) cok kullaniyorum. sed ile Shell script icinde sed kullanarak bir dosyanin belli bir paternini shell'de donen bir degiskenle degistirmek istedigimde asagidaki gibi bir script isi cozuyor.
awk '{print $0}' dosya.txt | while read satir ; do ## dosyayi satir satir
okur.
regname=`echo $satir| awk -F "|" '{print $2}'` ## dosyanin 2. kolonunu
regname degiskenine atar. regname_new=`echo
$regname|awk -F "/" '{print $1}' ` ## yeni atanacak degiskeni set eder.
echo $satir|sed "s:$regname:$regname_new:" >> dosya.txt.new ##
degistirme islemi
done
Suse Linux 'ta farkli ls -l sonuclari
Bu gun suse linux 10'da bir shell scriptle ugrasirken bir sey farkettim;
ls -l komutunu komut satirindan elle girdiginizde date kolonu; 2008-07-24
aynı komutu shell script icinde yazip crontab'tan calistirdiginizda ; Jul 24
gibi farkli sonuclar veriyor. Bu da date kolonunu referans alarak islem yaparken sorun olabiliyor.
Cozum;
shell scriptteki komutu
ls -l --time-style= +%Y-%m-%d
olarak yazmak. Bu komut size hep ayni ciktiyi vermeyi sagliyor.
Bu gun suse linux 10'da bir shell scriptle ugrasirken bir sey farkettim;
ls -l komutunu komut satirindan elle girdiginizde date kolonu; 2008-07-24
aynı komutu shell script icinde yazip crontab'tan calistirdiginizda ; Jul 24
gibi farkli sonuclar veriyor. Bu da date kolonunu referans alarak islem yaparken sorun olabiliyor.
Cozum;
shell scriptteki komutu
ls -l --time-style= +%Y-%m-%d
olarak yazmak. Bu komut size hep ayni ciktiyi vermeyi sagliyor.
Subscribe to:
Comments (Atom)
