ব্যাশে ইউআরআইতে ফাইলের পাথ রূপান্তর করুন


11

কমান্ড-লাইনে আমি কীভাবে কোনও ফাইল পাথকে ইউআরআইতে রূপান্তর করতে পারি?

উদাহরণ :

/home/MHC/directory with spaces and ümläuts

প্রতি

file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts


উত্তর:


5

এটি করার একটি উপায় হ'ল urlencode(উবুন্টু এর মাধ্যমে এটি ইনস্টল করুন sudo apt-get install gridsite-clients)।

urlencode -m "$filepath"

পাথটিকে ইউআরআইতে রূপান্তর করবে। ইউআরআইয়ের "ফাইল: //" অংশটি ছেড়ে দেওয়া হবে, তবে আপনি সহজেই এটি ব্যাশ ওয়ান-লাইনারের মাধ্যমে যুক্ত করতে পারেন:

uri=$(urlencode -m "$1"); echo "file://$uri"

বা সরাসরি

echo "file://$(urlencode -m "$1")"

অথবা

echo -n file://; urlencode -m "$1"

রেফারেন্সের জন্য মাইকেল কেজারলিকে অনেক ধন্যবাদ!


উক্তি ভুলে যাবেন না! আপনি সম্ভবত ডাবল উদ্ধৃতি encodeduri=$(urlencode -m "$uri") দিয়ে$uri
gniourf_gniourf

@gniourf_gniourf আপনাকে ধন্যবাদ, সেই অনুসারে কোডটি সংশোধন করেছেন।
গ্লুটোনিমেট

4

আপনি সরাসরি কমান্ড লাইন থেকে পার্ল মডিউল ইউআরআই :: ফাইলও ব্যবহার করতে পারেন :

$ path="/home/MHC/directory with spaces and ümläuts"
$ echo $path | perl -MURI::file -e 'print URI::file->new(<STDIN>)."\n"'
file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts
$

1
echo $path | perl -MURI::file -E 'say URI::file->new(<>)'পার্ল দিয়ে সংক্ষিপ্ত করা যেতে পারে 5.10 (2007 সাল থেকে) বা আরও নতুন
ড্যানিয়েল বোহ্মার

2

CentOS এ, কোনও অতিরিক্ত নির্ভরতা প্রয়োজন:

$ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url"

সঙ্গে pathlibমডিউল এটি মাধ্যমে করা যেতে পারেpython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url"
এক নজরে UMI

pathlibকেবল পাইথন 3 এ উপলব্ধ, যা সেন্টোস-এ ডিফল্টরূপে ইনস্টল করা হয়নি।
রকল্লাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.