ফাইল এবং ফোল্ডারের নাম থেকে নেতৃস্থানীয় সাদা স্থানকে কীভাবে সরিয়ে ফেলা যায়?


1

ফাইল এবং ফোল্ডারের নাম থেকে নেতৃস্থানীয় সাদা স্থানকে কীভাবে সরিয়ে ফেলা যায়? (আমি ওএস এক্স 10.6 স্নো লেপার্ড চালাচ্ছি))

@ ল্রি দ্বারা নীচে সরবরাহ করা হিসাবে আমি এটি ব্যবহার করে ট্রেলিং হোয়াইটস্পেস সরিয়ে ফেলতে সক্ষম হয়েছি:

#!/bin/bash

IFS=$'\n'
for d in {1..9}; do
    find ~/Desktop -name '* ' -depth $d | while read f; do
        mv "$f" "$(sed 's/ *$//' <<< "$f")"
    done
done

এখন আমি এর সাহায্যে শীর্ষস্থানীয় সাদা স্থান সরিয়ে দেওয়ার চেষ্টা করছি:

#!/bin/bash

IFS=$'\n'
for d in {1..9}; do
    find ~/Desktop -name '* ' -depth $d | while read f; do
        mv "$f" "$(sed 's/^ *//;s/ *$//' <<< "$f")"
    done
done

কিন্তু এটি কাজ করে না।

আমি কি ভুল করছি?

উত্তর:


3

আমি দুটি সমস্যা দেখতে পাচ্ছি: প্রথমত, findশেষের -name ' *'পরিবর্তে ( পরিবর্তে -name '* ') শুরুর দিকে ফাঁকা জায়গাগুলির নাম সন্ধান করার জন্য আপনার কমান্ডের প্রয়োজন । দ্বিতীয়ত, চ ফাইলটির পুরো পথ হতে চলেছে, কেবল তার নাম নয়; এর অর্থ স্পেসগুলি স্ট্রিংয়ের শুরুতে নয়, তারা শেষ স্ল্যাশের ঠিক পরে (যেমন "/ ব্যবহারকারী / টিমোটো / ডেস্কটপ / স্পেসডফিল")। এটি সামলানো আরও কিছুটা জটিল; সবচেয়ে সহজ উপায়টি যেটি আমি ভেবেছিলাম তা হ'ল ব্যবহার করে পথটি বিভক্ত করা dirnameএবং basenameকেবল ভিত্তি অংশ থেকে শীর্ষস্থান সরিয়ে নেওয়া remove

এছাড়াও, বিভিন্ন গভীরতায় 9 বার কমান্ড চালানোর দরকার নেই; কেবল -depthবিকল্পটি ব্যবহার করুন (সংখ্যা ছাড়াই), এবং এটি গভীরতা-প্রথম ক্রমে ফলাফলগুলি (যেমন তাদের ডিরেক্টরিগুলির আগে গভীরতম ফাইলগুলি) ফিরিয়ে দেবে, যার ফলে ডিরেক্টরিগুলির মধ্যে ফাইলগুলি প্রক্রিয়াজাতকরণের পরিবর্তে ডিরেক্টরিগুলির নাম পরিবর্তন করা উচিত prevent

IFS=$'\n'
find ~/Desktop -name ' *' -depth | while read f; do
    mv "$f" "$(dirname "$f")/$(basename "$f" | sed 's/^ *//;s/ *$//')"
done

সম্পাদনা: আমার বেসনাম / সেড কমান্ডটি যতটা প্রয়োজন তার চেয়ে বেশি সংশ্লেষিত হয়েছিল; এটি সরলীকৃত ...


-depthপতাকা চিহ্নিত করার জন্য ধন্যবাদ ... আমি মূল প্রশ্নের উত্তরটিও সম্পাদনা করেছি
Lri

এটি ম্যাকোস 10.11.6 তে প্রত্যাশার মতো আর কাজ করবে না বলে মনে হচ্ছে এখন ফোল্ডারগুলি থেকে নেতৃস্থানীয় এবং প্রশিক্ষণের স্থান এবং ফাইল নাম থেকে শীর্ষস্থান স্থান সরিয়ে ফেলা হবে তবে ফাইলের নাম থেকে স্থান অনুসরণ করবে না।
টিমোটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.