`Uniq -t` কী করেছিল?


15

আমার 2003 এর কিছু পুরানো কোড রয়েছে যা কমান্ডের -tবিকল্প ব্যবহার করে uniq। এটি একটি ত্রুটি ছুঁড়েছে যেহেতু সেই বিকল্পটি সম্ভবত আর সমর্থিত নয়।

কমান্ডটি ব্যবহার করে এমন অংশটি এখানে দেওয়া হয়েছে:

egrep -n "{ IA32_OP" ia32-decode.c | \
    awk '{ print $1 $3 $4 }' | \
    sort -t '(' +1 | \
    uniq -t ':' -f 1 | \
    sed 's/\(.*\)\:IA32_OP(\(.*\)),/#define IA32_OP_\2 \1/g' >> ia32_opcodes.h

সেই বিকল্পটি আবার কী করবে? আমি এই আদেশটি কীসের সাথে প্রতিস্থাপন করতে পারি?



মতে man uniq, -f 1প্রথম ক্ষেত্রের সাথে তুলনা করা এড়ানো। আমি এর থেকে অনুমান করব -t ':'যে -tফিল্ড সেপ্রেটারটি ফাঁকা থেকে পরিবর্তিত হবে :
মার্টিন ভন উইট্টিচ

সম্ভবত প্রাসঙ্গিক: stackoverflow.com/questions/10546337/... হয়তো -tএকটি ডেবিয়ান-নির্দিষ্ট বিকল্প যা পরে সরানো হয়েছে ছিলেন?
মার্টিন ভন উইট্টিচ

1
সম্ভবত প্রাসঙ্গিক: bugs.debian.org/cgi-bin/bugreport.cgi?bug=117016
মার্টিন ভন

1
আমি সবসময় কেন বিস্ময়ের উদ্রেক uniqএকই ছিল না -tএবং -kযেমন সাজানোর বা কেন সাজানোর সমস্ত বৈশিষ্ট্য ছিল না uniqঅন্তর্ভূক্ত (যেহেতু এখন এটা আছে -u)। ঐ -w/ -f/ -sগনুহ থেকে মানে হয় না uniq। তারা কেন একই সিনট্যাক্স ব্যবহার করতে পারেনি sort
স্টাফেন চেজেলাস

উত্তর:


13

শুধুমাত্র রেফারেন্সের আমি খুঁজে পাইনি -tহয় এই প্যাচ একটি গনুহ মেইলিং তালিকা, যাতে অন্যান্য সংকেত সনাক্ত করুন মধ্যে রয়েছে, এই:

+  -t, --separator=S     use a character in string S as field separator\n\

স্পষ্টতই এটি একটি জিএনইউ এক্সটেনশন ছিল তবে এটি আর ব্যবহারে নেই। স্পেসস বা ট্যাবগুলি ছাড়া অন্য ক্ষেত্রগুলির জন্য সীমানা নির্ধারণের অক্ষরটি নির্বাচন করার অনুমতি দেওয়া হয়েছে বলে মনে হয়। প্রতিস্থাপন চেষ্টা করুন

uniq -t ':' -f 1 | \

সঙ্গে

sed 's/:/ /' | \
uniq -f 1 | \

যা :ইউনিক ফিল্ড বিভাজককে স্বীকৃতি দেয় এমন স্পেসগুলির সাথে প্রতিস্থাপন করবে ।


আমি gএখান থেকে বাদ দেব sed, যেহেতু শুধুমাত্র প্রথম ক্ষেত্রটি এড়িয়ে গেছে। শেষ লাইনে কাজ করার জন্য কমপক্ষে একটি কোলন প্রয়োজন (আশা করি প্রথমটি নয়)। এখনও এটির কোনও গ্যারান্টি যদিও এটি কাজ করবে না (প্রথম ক্ষেত্রের কোনওটিতেই সাদা অংশ থাকতে পারে)
গ্রিম

@ গ্র্যাম গুড পয়েন্ট, সম্পাদিত।
কেসী

ডেবিয়ান সালে coreutils 5.2.1 প্রকৃতপক্ষে এই ধরনের একটি প্যাচ প্রয়োগ ছিল, এবং আপাতদৃষ্টিতে এটি 5.93-1 কারণে সরানো হয়, যে নভেম্বরে হয়, 2005.
user2719058

4

বিকল্পের জন্য manএন্ট্রি দেওয়া -f:

-ফ, --স্কিপ-ফিল্ডস = এন

         avoid comparing the first N fields

আমি মনে করি যে -tএটি ফিল্ড বিভাজক নির্দিষ্ট করে ( sortএটি উপরের লাইনের ক্ষেত্রেও এটি) ধরে নেওয়া মোটামুটি নিরাপদ । দুটি বিকল্পের সংমিশ্রণটি uniqপ্রথম কোলনের পরে কেবল লাইনের অংশে কাজ করবে ।

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