বেসে 'কাট' দিয়ে 'ট্যাব' ডিলিমিটারকে কীভাবে সংজ্ঞায়িত করবেন?


214

cutস্পেস ডিলিমিটার ব্যবহার করে ক্ষেত্রগুলিতে ইনপুট ভাঙ্গার এবং দ্বিতীয় ক্ষেত্রটি প্রাপ্ত করার উদাহরণ এখানে রয়েছে :

cut -f2 -d' '

স্থানের পরিবর্তে ডিলিমিটারকে কীভাবে ট্যাব হিসাবে সংজ্ঞায়িত করা যায়?



4
ট্যাব একটি ডিফল্ট ডিলিমিটার। কাট -ফ 2
মেলাহ

উত্তর:


300

দুটি উপায়:

প্রেস Ctrl+ + Vএবং তারপর Tab

cut -f2 -d'   ' infile

বা এটি লিখুন:

cut -f2 -d$'\t' infile

10
$ '' - বাশ'িজম, আফার
পোজ

8
উইন্ডোজ (উদাহরণস্বরূপ, গিট বাশ) এগুলি স্পষ্টতই কাজ করে না। সেখানে @ মাইকেলের উত্তর ব্যবহার করুন (ডিফল্ট ডিলিমিটারটি ট্যাব, কেবল -dআর্গুমেন্ট বাদ দেয় )।
আহমেদ ফ্যাসিহ


4
@ পোইজ, এটি এসেছে ksh93, না bash। এটি কমপক্ষে ksh93, zsh, bash, mksh এবং FreeBSD sh দ্বারা সমর্থিত ( এটি এটির জন্য POSIX স্ট্যান্ডার্ড স্পেসিফিকেশনের পরবর্তী বড় বিপরীতে পরিণত হতে পারেsh )।
স্টাফেন চেজেলাস

3
@ মাইবার্ব এএনএসআই-সি উদ্ধৃতি: gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html
উইসবাকী

190

ট্যাব ডিফল্ট।

দেখুন কাটা man পৃষ্ঠা

-d delim
         Use delim as the field delimiter character instead of the tab
         character.

সুতরাং আপনার শুধু লেখা উচিত

cut -f 2

2
ওফস সেই লাইনটি লক্ষ্য করে না।
মুহাম্মদ হাসান খান

4
তবে পঠনযোগ্যতা এবং বহনযোগ্যতা উভয়ের জন্য এই জাতীয় পতাকাগুলি স্পষ্টভাবে উল্লেখ করা সর্বদা নিরাপদ। আমি কল্পনা করতে পারি যে cutউইন্ডোজের জন্য একটি ডিজাইন করা কিছু লোক সম্পূর্ণ মান অনুসরণ করে না।
উইলেম ভ্যান অনসেম

3
এটি উত্তর গ্রহণ করা উচিত: সহজতম কোড, সরল ব্যাখ্যা। ইয়া এটি পেরেক দিয়েছিল: youtube.com/watch?v=dpNTHl7y45Y
নিউরোনেট

5
এই উত্তরটি আমার জীবন বদলে দিয়েছে
গণিত

1
@WillemVanOnsem, যদি কেউ একটি সংস্করণ লিখেছেন cutWindows এর জন্য এবং অনুসরণ করে না POSIX স্পেসিফিকেশন জন্য, সেখানে যে অনুমান করা কোনো কারণ নেই কোনো POSIX স্ক্রিপ্ট সিস্টেম সঙ্গে কাজ করবে। POSIX- নির্দিষ্ট বৈশিষ্ট্যগুলিতে লেগে থাকুন। অনুমানমূলক ভবিষ্যতের অ-সম্মতিজনক বাস্তবায়নের অনুমতি দেওয়ার চেষ্টা করবেন না; "বহনযোগ্যতা" এর অর্থ এটাই নয়।
ওয়াইল্ডকার্ড

12
awk -F '\t' '{ print $2 }' inputfile

এটি থেকে প্রতিটি ইনপুটটির লাইনটির দ্বিতীয় ট্যাব-বিস্মৃত ক্ষেত্রটি বের করে inputfile


10

আরও সাধারণভাবে, কোনও অদৃশ্য অক্ষরের প্রয়োজন ছাড়াই: trডিলিমিটরকে এমন কোনও ফর্ম্যাটে রূপান্তর করতে ব্যবহার করুন যা আরও সহজেই নির্দিষ্ট করা যেতে পারে cut

$ echo -e "a\tb\tc" |tr '\t' ' ' |cut -d' ' -f2
b

tr একটি সাধারণ, তবে শক্তিশালী, চরিত্রের মিল এবং প্রতিস্থাপন সরঞ্জাম।


1
তবে ইনপুট হলে কী হবে abc(space)def(tab)ghi? আপনার উত্তরটি ফল দেবে তবে ফলন defকরা উচিত ghi। একইভাবে, যদি ইনপুট হয় তবে ABC(tab)DEF(space)GHIআপনার উত্তরটি ফলবে DEF, তবে তা পাওয়া উচিত DEF(space)GHI
জি ম্যান

@ জি-ম্যান: স্পেস ডিলিমিটারের একটি উদাহরণ ছিল। আপনার ডেটা-র জন্য ডিলিমিটার উপযুক্ত যেটি ব্যবহার করুন - উদাহরণস্বরূপ একটি কমা। echo -e "abc\tdef ghi" |tr '\t' ',' |cut -d',' -f2
নোবার

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