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

Kirim email ke