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

Kirim email ke