On 9/26/06, Ronny Haryanto <[EMAIL PROTECTED]> wrote:
On Tue, Sep 26, 2006 at 11:43:08AM +0700, Nasrullah . wrote:
> if($strcontent =~ /\<TITLE\>\s+(.+?)\s+\<\/TITLE\>/gi)
...
> masalahnya script ini hanya mencetak string yang terletak diantara tag
> yang terletak di paling awal saja.
> jadi yang saya ingin tanyakan adalah bagaimana caranya agar semua string
> yang terletak diantara tag <title> dapat di print.
Itu karena yang di dalam (..) cuma bagian awal saja. Harusnya semua
dong kalo memang mau semua. $1 itu cuma yg di antara "(" dan ")" saja.
/\<TITLE\>(.*)\<\/TITLE\>/
^^^^
$1
Script anda bisa dipendekin jadi satu baris:
perl -ne 'print "$1\n" if /\<TITLE\>(.*)\<\/TITLE\>/;' file.txt
setelah dicoba, ternyata ini hanya berlaku jika tag2 <title> berada
dalam satu
baris, kalo beberapa baris gimana, ya?
misal:
<title>Pemerintah belanda berniat melakukan negosiasi dengan para investor
mengenai undang-undang Investasi di negara itu
</title>
Atau kalo gak mau pake perl:
egrep "/\<TITLE\>.*\<\/TITLE\>/" file.txt | sed -e '</?TITLE>'
Catatan:
- Script2 di atas tidak saya tes. Mungkin ada salah sintaks, tapi yg
penting idenya. Silakan disesuaikan kalo ada yg salah.
- Saya lihat nama script anda wordcount, mudah2an anda sudah familiar
dengan program "wc".
sudah, tapi saya ingin melakukannya dengan Perl
terima kasih,
Nasrullah
Ronny
--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis