আমার একটি পাঠ্য ফাইল থেকে সদৃশ লাইনগুলি অপসারণ করা দরকার, এটি লিনাক্স ব্যবহার করে সহজ
cat file.txt |sort | uniq
যখন file.txt থাকে
aaa
bbb
aaa
ccc
এটি আউটপুট হবে
aaa
bbb
ccc
উইন্ডোজ সমতুল্য আছে? বা উইন্ডোজ উপায়ে এটি কীভাবে করবেন?
আমার একটি পাঠ্য ফাইল থেকে সদৃশ লাইনগুলি অপসারণ করা দরকার, এটি লিনাক্স ব্যবহার করে সহজ
cat file.txt |sort | uniq
যখন file.txt থাকে
aaa
bbb
aaa
ccc
এটি আউটপুট হবে
aaa
bbb
ccc
উইন্ডোজ সমতুল্য আছে? বা উইন্ডোজ উপায়ে এটি কীভাবে করবেন?
উত্তর:
Sort-Object
PowerShell মধ্যে cmdlet একটি সমর্থন -Unique
সুইচ যে একই জিনিস আছে uniq
:
Get-Content file.txt | Sort-Object -unique
অবশ্যই, পাওয়ারশেলে এলিয়াসের উপস্থিতির কারণে আপনি আরও লিখতে পারেন:
type file.txt | sort -unique
অতিরিক্তভাবে, উইন্ডোজ 10-এ একটি অনিবন্ধিত /unique
সুইচ রয়েছে sort.exe
, সুতরাং, এটি কমান্ড প্রম্পটে কাজ করা উচিত:
type file.txt | sort /unique
sort.exe
) এটি সমর্থন করে; এটি পাওয়ারশেল বিল্টিনের কোনও বৈশিষ্ট্যের মতো দেখায়।
type file.txt | sort /unique
সাথে কাজ করে অনথিভুক্ত সুইচ /unique
এর sort.exe
(উইন্ডোজ 10 কমপক্ষে) ইউটিলিটি। অন্যদিকে, আপনি ঠিক বলেছেন যে প্রদত্ত উদাহরণটি পাওয়ারশেল Get-Content file.txt | Sort-Object -unique
, বাস্তবে।
sort /unique
Invalid switch.
উইন্ডোজ 7 এন্টারপ্রাইজের সাথে ত্রুটিগুলি ।
ইউনিকের পোর্ট রয়েছে যা gnu / কোরিউটিলস সংস্করণগুলিতে অভিন্ন কাজ করে। আমি ব্যক্তিগতভাবে GOW থেকে প্রকরণটি ব্যবহার করি তবে উইন্ডোজের গিটের একটি উল্লেখযোগ্যতর নতুন সংস্করণ রয়েছে । আপনার পরবর্তী / ইউএসআর / বাক্সে সন্ধান করা দরকার যদিও এর জন্য কোনও সাইগউইনের প্রয়োজন নেই
যেহেতু এই প্যাকেজগুলিতে বিড়াল, বাছাই এবং একীক রয়েছে - আপনার কার্যপ্রবাহটি বেশিরভাগ ক্ষেত্রে অভিন্ন cat file.txt |sort | uniq
হওয়া উচিত এবং বেশিরভাগ ক্ষেত্রে অভিন্নভাবে কাজ করা উচিত
আপনি নিজের দ্বারা "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 ব্যর্থ পাঠ্য বা ফাঁকা লাইন দিতে
ইউ জিয়াওর উত্তর যোগ করুন। আপনি sort-object
কমান্ড প্রম্পটে পাওয়ারশেল সেমিডলেটটি অনুরোধ করতে পারেন:
type file.txt | powershell -nop "$input | sort -unique"
sort -u file.txt