2012-03-01 8 views

Odpowiedz

4

query_form zwraca hash, zmienić swój skrypt do:

perl -MURI -le 'chomp($url = <>); print +{URI->new($url)->query_form}->{offset}' 

W celu przetworzenia wielu le linie:

perl -MURI -nle 'print +{URI->new($_)->query_form}->{offset}' 
+0

Jaki jest sposób drukowania "przesunięcia" dla każdej linii na wyjściu, np. Mam: echo "/mypath/index.php?offset=20&query=uro \ n /mypath2/index.php?offset=30&query=uro" – glaz666

+1

@ glaz666: po prostu dodaj opcję '-n' do perla. Zobacz moją edycję. – Toto

1

można użyć modułu rdzeń CGI:

perl -MCGI=param -e 'print param("offset")' "index.php?offset=20&query=uro" 
+0

z dziwnego powodu nie działa z wejściem przewodowym ... Ważne jest, ponieważ wyodrębniam tam ten ciąg – glaz666

+1

@ glaz666 'CGI' oczekuje zapytania jako argumentu do skryptu. Możesz użyć 'echo" /mypath/index.php?offset=20&query=uro "| perl -MCGI = param -e '@ARGV = <>; print param ("offset") "' –

Powiązane problemy