তালিকা থেকে ফাইলগুলি বাতিল বা বাতিল করতে পারে না lude


2

সমস্যাটি হ'ল, আমার কাছে ইউআরএলগুলির তালিকা সহ একটি ফাইল রয়েছে, বলুন links.txt:

http://www.tipsfor.us/wp-content/uploads/2009/01/vim-editor-icon.png
http://wp.psyx.us/wp-content/uploads/2011/01/vi-vim-tutorial-1.gif
http://proft.me/static/img/vim/vi-vim-cheat-sheet.gif

আমি যা করার চেষ্টা করছি তা wgetজানতে দিন যে আমি এটির pngমতো হওয়া চাই না:

। উইজেট -আর পিএনজি -i লিঙ্কস.টেক্সট

তবে এর কোনও প্রভাব নেই এবং wgetএখনও pngঅন্যদের সাথে ফাইল পায় । বংশীধ্বনিতুল্য links.txtমাধ্যমে grepপ্রকৃত ফাইল হিসেবে একটি বিকল্প লিংক এই ফর্মটি হয় না http://example.com/get/123987562যে তারপর সমাধান / ভালো কিছু মধ্যে পুনঃনির্দেশিত পরারhttp://example.com/media/images/cool-pic.jpg

সুতরাং প্রশ্নটি হল, আমি কীভাবে নির্দিষ্ট ফাইলগুলি প্রত্যাখ্যান / বাদ দেব wget?


আদেশ কি গুরুত্বপূর্ণ? চেষ্টা করুনwget -i links.txt -R png
কুসালানন্দ

নাঃ। অর্ডার গুরুত্বপূর্ণ নয়।
grimgav

উত্তর:


1

উইজেট, বা কমপক্ষে আমি যে সংস্করণটি দেখিয়েছি এটি করার জন্য খুব কম সজ্জিত উপস্থিত রয়েছে, --server-responseঅপশনটি এখনও ফাইলটি ডাউনলোড করে। যদি উইজেটটি সমালোচনা না করে তবে কার্লটি আরও ভাল বিকল্প হতে পারে।

এই ধরণের সমস্যার সমাধানটিতে সার্ভার দ্বারা ফিরে আসা সামগ্রী-প্রকারের দিকে নজর দেওয়া জড়িত। উদাহরণ স্বরূপ:

curl -I http://www.tipsfor.us/wp-content/uploads/2009/01/vim-editor-icon.png

stdout উপর নিম্নলিখিত মত কিছু লিখুন

http://www.tipsfor.us/wp-content/uploads/2009/01/vim-editor-icon.png
HTTP/1.1 200 OK
Server: nginx admin
Date: Thu, 03 Nov 2011 09:22:55 GMT
Content-Type: image/png
Content-Length: 35765
Last-Modified: Wed, 13 Apr 2011 05:19:19 GMT
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 10 Nov 2011 09:22:55 GMT
Cache-Control: max-age=604800
X-Cache: HIT from Backend
Accept-Ranges: bytes

গ্রেপের সাথে ফলাফলটি ফিল্টার করা আপনাকে গ্রহণযোগ্য মাইম প্রকারের জন্য পরীক্ষা করতে দেয়। তারপরে আপনি ফাইলগুলির তালিকার জন্য বৈধ মাইম প্রকারগুলি পরীক্ষা করার জন্য পদ্ধতিটি সাধারণ করতে পারেন। এটিকে পরিষ্কার করে শেল স্ক্রিপ্টে রাখছি:

#!/bin/bash
# in mimechecker.sh

LINKFILE=$1
PATTERN=$2

function mimefilter {
    URL=$1
    PATTERN=$2
    curl -sI $URL | egrep ${PATTERN} > /dev/null 2>&1
    if [ "$?" -eq "0" ] ; then
        wget $URL
    fi
}

(
    while read line
    do
        mimefilter $line $PATTERN
    done
) < $LINKFILE

যা আপনি এইভাবে কল করবেন:

mimechecker links.txt 'image/png'

দুর্দান্ত ধারণা, আমার প্রশ্নের ভাগ করে নেওয়ার জন্য আপনাকে ধন্যবাদ। এটা সত্যিই সাহায্য করেছে।
grimgav
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.