On Sat, Jan 21, 2006 at 10:50:22PM +0700, Dwi Kiansantang wrote: > saya punya file, 'msc_comma' > > M6040,MSC_KB1X,2006-01-21,16,16,07,54,NAT/H'0817,NAT/H'2045,2,0,0,50,ALM_OFF > M6041,MSC_KB1X,2006-01-22,17,17,08,59,NAT/H'0817,NAT/H'2045,45,23,110,123,34567,12%,123 > > masing2 dipisahkan dengan tanda ",", sy ingin menggabungkan field ke 3 > dan ke-4 sehingga field gabungan tadi bisa saya masukan ke database > postgres sebagai type timestamp (untuk memudahkan visualisasi tanda "+" > saya gunakan menggantikan 'space")
Harusnya anda tuliskan juga contoh hasil akhirnya yg diinginkan itu seperti
apa, jadi lebih mudah kita memahaminya. Seperti ini?
M6040,MSC_KB1X,2006-01-21 16,16,07,54,NAT/H'0817,NAT/H'2045,2,0,0,50,ALM_OFF
M6041,MSC_KB1X,2006-01-22
17,17,08,59,NAT/H'0817,NAT/H'2045,45,23,110,123,34567,12%,123
Gini aja:
perl -pe 's/^([^,]+,)([^,]+,)([^,]+),/$1$2$3 /' msc_comma
Atau tambah -i (seperti 'perl -i -pe ...') kalo mau edit in-place.
Semua yg pake sed ama awk rata2 bisa diganti pake perl, lebih enak.
Walaupun yg simple substitution seperti di atas biasanya lebih enteng
kalo pake sed. Saya kadang gak suka ada perbedaan syntax regexnya aja,
jadi saya konsisten pake perl aja biar gak bingung.
Ronny
signature.asc
Description: Digital signature
