alasannya; 1. di file yang bang riza post, script sqlnya semua satu baris, biar lebih gampang di format saya jadikan beberapa baris. 2. kemungkinan nama domain berubah-ubah, jadi nyari patternya perlu nama domain n nama user. 3. saya gak tau cara yang lebih singkat bang, maafkanlah daku hehe2..
On 1/21/09, ahmad riza h nst <[email protected]> wrote: > > 2009/1/21 andi sn <[email protected]>: >> >> maaf baru gabung, coba klo kayak gini bang >> > > thanks, > > aku belum sempat coba saran kamu, tapi kalau ada perintah yang > sederhana dan hanya satu baris, apakah ada alasan yang kuat sehingga > harus menggunakan kode yang panjang ? :) > > >> # berubah.sh >> # file test.txt yang mau di sed, test.tmp hasilnya >> cat test.txt|sed "s/,(/\n(/g" > test.tmp >> namauser=(`cat test.tmp|cut -d, -f1|gawk 'match($0,"[(](.*)",a){print >> a[1]}'`) >> namadomain=(`cat test.tmp|gawk 'match($0,"/mailbox/domains/(.*)/",a) >> {print a[1]}'`) >> arrcount=${#namauser[*]} >> >> i=0 >> while [ $i -lt $arrcount ] >> do >> usernama=${namauser[$i]} >> domainnama=`echo ${namadomain[$i]}|cut -d'/' -f1` >> echo $usernama >> echo $domainnama >> cat test.tmp|sed "s/($usernama/($usernama,'$domainnama'/g" > test.tmp >> (( i=i+1 )) >> done >> >> On 1/19/09, Wardi <[email protected]> wrote: >>> >>> On Mon, Jan 19, 2009 at 11:45:11AM +0700, ahmad riza h nst wrote: >>>> >>>> 2009/1/19 Wardi <[email protected]>: >>>> > >>>> > >>>> > menyisipkan di depan pattern pakai sed gampang, dengan subtitute, >>>> > grouping regex, dan back reference: >>>> > sed -e "s/\(pattern\)/'nama-domain-saya.co.id',\1/g" >>>> > >>>> > mencari patternnya yang susah kalau inputnya seperti itu, >>>> >>>> input nya satu baris koq bang, cuma mungkin waktu copy paste ke sini >>>> jadi berantakan. >>>> thanks buat sarannya, aku cuma ngga ngerti buat nyisip nya kerna >>>> selain karakter yang cocok itu selalu berubah juga kerna belum pernah >>>> pake \1 sebelumnya buat replace :) >>> >>> maksudku kalau bisa satu record jadi satu baris (bukan keseluruhannya >>> satu baris), karena sed memproses perbaris, mencari patternnya mungkin >>> lebih gampang, menyisipkannya di belakang pattern, karena pattern yang >>> di depan lebih mudah dilihat polanya. >>> kira-kira textnya menjadi: >>> >>> INSERT INTO `vpopmail` VALUES ('postmaster','9rjSl4ONjIvtQ',... >>> INSERT INTO `vpopmail` VALUES ('mzachri','NeIRtv19MRCds',... >>> INSERT INTO `vpopmail` VALUES ('bekasi10','UVCI4BaPWvKak',... >>> >>> trus diproses dengan sed: >>> sed -e "s/\(^INSERT INTO .vpopmail. VALUES >>> ('[^']\+',\)/\1'nama-domain-saya.co.id',/" >>> >>> perhatikan wrappingnya, command sed yang di atas itu seharusnya satu >>> baris. >>> -- >>> Wardi >>> >> >> >> -- >> Andi Sulistyo Nugroho >> http://drakulil.wordpress.com >> > > > > -- > http://blog.rizahnst.org > -- Andi Sulistyo Nugroho http://drakulil.wordpress.com
