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


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.