ইউনিক্স ইউনিকের সমতুল্য উইন্ডোজ আছে কি?


17

আমার একটি পাঠ্য ফাইল থেকে সদৃশ লাইনগুলি অপসারণ করা দরকার, এটি লিনাক্স ব্যবহার করে সহজ

cat file.txt |sort | uniq

যখন file.txt থাকে

aaa
bbb
aaa
ccc

এটি আউটপুট হবে

aaa
bbb
ccc

উইন্ডোজ সমতুল্য আছে? বা উইন্ডোজ উপায়ে এটি কীভাবে করবেন?


10
ইউনিক্সে, আপনি এটি লিখতে পারেনsort -u file.txt
jfs

1
এখানে ডাব্লুএসএলও রয়েছে যা এই ধরণের জিনিসগুলি যতটা ভাল চলে তত ভাল কাজ করে
ব্যবহারকারীর জন্য ২৩১৩২74

সমাধান হিসাবে আপনি কিছু সেট করতে চান, যদি আপনার আরও কোনও প্রশ্ন না থাকে?
ডেভিডবাউমান

উত্তর:


31

Sort-ObjectPowerShell মধ্যে cmdlet একটি সমর্থন -Uniqueসুইচ যে একই জিনিস আছে uniq:

Get-Content file.txt | Sort-Object -unique

অবশ্যই, পাওয়ারশেলে এলিয়াসের উপস্থিতির কারণে আপনি আরও লিখতে পারেন:

type file.txt | sort -unique

অতিরিক্তভাবে, উইন্ডোজ 10-এ একটি অনিবন্ধিত /uniqueসুইচ রয়েছে sort.exe, সুতরাং, এটি কমান্ড প্রম্পটে কাজ করা উচিত:

type file.txt | sort /unique

1
আমি মনে করি না উইন্ডোজ কমান্ড ( sort.exe) এটি সমর্থন করে; এটি পাওয়ারশেল বিল্টিনের কোনও বৈশিষ্ট্যের মতো দেখায়।
বেন ভয়েগট

1
টাইমবিহীন। txt | সাজান-ইউনিক> sort.txt এটি সত্যই win10 এর অধীনে কাজ করে এবং নতুন ফাইলে অনন্য মূল্যবোধ
লিখেছিল

7
@BenVoigt আশ্চর্যজনক, type file.txt | sort /uniqueসাথে কাজ করে অনথিভুক্ত সুইচ /uniqueএর sort.exe(উইন্ডোজ 10 কমপক্ষে) ইউটিলিটি। অন্যদিকে, আপনি ঠিক বলেছেন যে প্রদত্ত উদাহরণটি পাওয়ারশেল Get-Content file.txt | Sort-Object -unique, বাস্তবে।
জোসেফজেড

1
sort /uniqueInvalid switch.উইন্ডোজ 7 এন্টারপ্রাইজের সাথে ত্রুটিগুলি ।
ডন ক্রিকশঙ্ক

1
@ জোসেফজেড, উত্তরটি "/" (ফরোয়ার্ড-স্ল্যাশ) এবং ড্যাশ না করে স্যুইচটি নির্দিষ্ট করে; ফরোয়ার্ড-স্ল্যাশ সিএমডি-তে কমান্ডের জন্য উইন্ডোজ স্ট্যান্ডার্ড এবং কমান্ড স্যুইচগুলিতে স্ল্যাশের জন্য কোনও ড্যাশ প্রতিস্থাপনের অনুমতি দেয় না। একটি দ্রুত রেফারেন্সের জন্য ডকস.মাইক্রোসফট.ওন / উইন্ডস -সাইভার / অ্যাডমিনিস্টেশন / ......... ধারাবাহিকভাবে স্ল্যাশ দেখায়। উপরেরটি একটি দুর্দান্ত উত্তর ছিল, একটি টিডিবিট ভাগ করে নেওয়া যা সাধারণত জানা যায় না, যদিও "/ অনন্য" স্যুইচটি এত কার্যকর যেহেতু নথিভুক্ত কেন তা আমি কল্পনাও করতে পারি না।
দেবর

6

ইউনিকের পোর্ট রয়েছে যা gnu / কোরিউটিলস সংস্করণগুলিতে অভিন্ন কাজ করে। আমি ব্যক্তিগতভাবে GOW থেকে প্রকরণটি ব্যবহার করি তবে উইন্ডোজের গিটের একটি উল্লেখযোগ্যতর নতুন সংস্করণ রয়েছে । আপনার পরবর্তী / ইউএসআর / বাক্সে সন্ধান করা দরকার যদিও এর জন্য কোনও সাইগউইনের প্রয়োজন নেই

যেহেতু এই প্যাকেজগুলিতে বিড়াল, বাছাই এবং একীক রয়েছে - আপনার কার্যপ্রবাহটি বেশিরভাগ ক্ষেত্রে অভিন্ন cat file.txt |sort | uniqহওয়া উচিত এবং বেশিরভাগ ক্ষেত্রে অভিন্নভাবে কাজ করা উচিত


2

আপনি নিজের দ্বারা "uniq" কমান্ডটি সহজেই লিখতে পারেন। এটি আপনার ব্যাচ ফাইলে "uniq.cmd" এ সংরক্ষণ করুন আপনার%%% কোথাও এটি খুঁজে পেতে পারে (যেমন% উইন্ডির% \ system32)। এই সংস্করণটি সংবেদনশীল নয়:

@echo off
setlocal DisableDelayedExpansion
set "prev="
for /f "delims=" %%F in ('sort %*') do (
    rem "set" needs to be done without delayed expansion
    set "line=%%F"
    setlocal EnableDelayedExpansion
        set "line=!line:<=<!"
        if /i "!prev!" neq "!line!" echo(!line!
        set "prev=!line!"
    endlocal
)

এটি "ইউনিট মাইেক্সটেক্সফিল" পাশাপাশি "বিড়াল মাইটেক্সটফিল | ইউনিিক" এর সাথে কাজ করে; যেমন সমস্ত ইনপুট এবং আর্গুমেন্টগুলি সর্ট কমান্ডে সহজভাবে প্রেরণ করা হয়।

উইন্ডোজ with দিয়ে শুরু করে, আপনি সত্যিই কেস সংবেদনশীল সংস্করণটি চাইতে পারেন (পার্থক্যটি হ'ল নথিভুক্ত সুইচ "সাজানো / সি" এবং "যদি / আমি" নয়):

@echo off
setlocal DisableDelayedExpansion
set "prev="
for /f "delims=" %%F in ('sort /C %*') do (
    rem "set" needs to be done without delayed expansion
    set "line=%%F"
    setlocal EnableDelayedExpansion
        set "line=!line:<=<!"
        if "!prev!" neq "!line!" echo(!line!
        set "prev=!line!"
    endlocal
)

দুর্দান্ত, তবে এর কিছু ত্রুটি রয়েছে। এটি বর্তমানে বিষয়বস্তু মতো ব্যর্থ /?, ON, one ^ caretবা bang!। তবে টগলিং বিলম্বিত সম্প্রসারণ প্রযুক্তি ব্যবহার করে এটি সমাধান করা যেতে পারে এবং echo(দেখুন: ডসটিপস: ECHO O ব্যর্থ পাঠ্য বা ফাঁকা লাইন দিতে
jeb

ধন্যবাদ, টগলিং বিলম্বিত সম্প্রসারণ প্রযুক্তি ব্যবহারের কারণ সুস্পষ্ট বা চিহ্নিত করা হয়নি। আমি আমার উদাহরণগুলি এখন নিখুঁত হতে সম্পাদনা করেছি।
টম স্টেইন

0

ইউ জিয়াওর উত্তর যোগ করুন। আপনি sort-objectকমান্ড প্রম্পটে পাওয়ারশেল সেমিডলেটটি অনুরোধ করতে পারেন:

type file.txt | powershell -nop "$input | sort -unique"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.