উত্তর:
$ tr ' ' '\n' < FILE | grep WORD | wc -l
যেখানে tr
নিউলাইনগুলির সাথে স্পেসগুলি প্রতিস্থাপন করে, ডাব্লুএআরডির সাথে grep
মেলে সমস্ত ফলাফল লাইনগুলি ফিল্টার করে এবং wc
বাকিগুলি গণনা করে।
এমনকি গ্রেপ বিকল্পটি wc
ব্যবহার করে কেউ অংশটি সংরক্ষণ করতে পারে -c
:
$ tr ' ' '\n' < FILE | grep -c WORD
-c
বিকল্প POSIX দ্বারা সংজ্ঞায়িত করা হয়।
শব্দের মধ্যে শূন্যস্থান রয়েছে কিনা তা যদি নিশ্চিত না হয় তবে প্রতিস্থাপনের জন্য আপনাকে অন্য কিছু চরিত্র (ডিলিমিটার হিসাবে) ব্যবহার করতে হবে। উদাহরণস্বরূপ বিকল্প tr
অংশগুলি হ'ল
tr '"' '\n'
অথবা
tr "'" '\n'
আপনি যদি ডাবল বা একক উদ্ধৃতি প্রতিস্থাপন করতে চান। অবশ্যই, আপনি tr
একবারে একাধিক অক্ষর প্রতিস্থাপন করতেও ব্যবহার করতে পারেন (বিভিন্ন ধরণের শ্বেতস্থান এবং বিরামচিহ্নগুলি ভাবেন)।
আপনার যদি WORD গণনা করতে হবে তবে উপসর্গ, WORDsuffix বা উপসর্গ WORDsuffix না গণনা করা দরকার, আপনি শুরু / শেষ-অব-লাইন চিহ্নিতকারীগুলিতে WORD প্যাটার্নটি আবদ্ধ করতে পারেন:
grep -c '^WORD$'
যা আমাদের প্রসঙ্গে শব্দ-শুরু / শেষ চিহ্নগুলির সমতুল্য:
grep -c '\<WORD\>'
tr
কখনই কোনও কমান্ড নিয়ে আসতে পারেন যা কাজটি করে এমন উদাহরণগুলির পরিবর্তে সমস্ত পরিস্থিতিতে কখনই কাজ করবে না এমন পরামর্শ দেওয়ার পরিবর্তে কাজ করতে পারে। এটি এমন শব্দগুলির সাথেও মিলবে যাতে আপনি যে শব্দটি অনুসন্ধান করছেন তা অন্তর্ভুক্ত। grep -o '\<WORD\>' | wc -l
সমাধান পর্যন্ত শ্রেয়।
জিএনইউ গ্রেপ সহ, এটি কাজ করে: grep -o '\<WORD\>' | wc -l
-o
প্রতিটি লাইনের প্রতিটি মিলিত অংশগুলি আলাদা লাইনে মুদ্রণ করে।
\<
একটি শব্দের শুরুতে দৃser়তা দেয় এবং একটি শব্দের \>
শেষে (পার্লের অনুরূপ \b
) জোর দেয় , সুতরাং এটি নিশ্চিত করে যে আপনি কোনও শব্দের মাঝখানে কোনও স্ট্রিংয়ের সাথে মেলে না।
উদাহরণ স্বরূপ,
$ পাইথন -c 'এই আমদানি' | গ্রেপ '\ <এক \>' থাকা উচিত এক শুধুমাত্র এবং বিশেষ করে - এক এটা করতে --obvious উপায়। নামস্থান হয় এক মহান ধারণা honking - এর ঐ আরও অনেক কিছু করা যাক! $ পাইথন -c 'এই আমদানি' | grep -o '\ <one \>' এক এক এক $ পাইথন -c 'এটি আমদানি করুন' | গ্রেপ-ও '\ <এক \>' | wc -l 3
grep -wo WORD | wc -l
এই দুর্ভাগ্যবশত কাজ করে না গনুহ সঙ্গে coreutils
।
grep -o -c WORD file
যদি এটি আপনার প্ল্যাটফর্মে কাজ করে তবে এটি একটি মার্জিত এবং মোটামুটি স্বজ্ঞাত সমাধান; তবে জিএনইউর লোকেরা এখনও ভাবছে।
grep
এখানে একটি বাগ রয়েছে। এটি পোজিক্স থেকে পরিষ্কার নয় যে সংমিশ্রণের শব্দার্থকগুলি কী -c
এবং -o
এটি বর্তমানে বহনযোগ্য নয়। মন্তব্যের জন্য ধন্যবাদ; আমি এই উত্তর আপডেট করেছি।
sed -e 's/[^[:alpha:]]/ /g' text_to_analize.txt | tr '\n' " " | tr -s " " | tr " " '\n'| tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | nl
এই আদেশটি নিম্নলিখিতগুলি করে:
উদাহরণস্বরূপ যদি আমি প্রথম লিনাস টরভাল্ড বার্তাটিকে বিশ্লেষণ করতে চাই:
থেকে: torvalds@klaava.Helsinki.FI (লিনাস বেনেডিক্ট টরভাল্ডস) নিউজগ্রুপস: কমপোস.মিনিক্স বিষয়: আপনি মিনিক্সে সর্বাধিক কী দেখতে চান? সংক্ষিপ্তসার: আমার নতুন অপারেটিং সিস্টেমের জন্য ছোট পোল বার্তা-আইডি: <1991Aug25.205708.9541@klaava.Helsinki.FI> তারিখ: 25 আগস্ট 91 20:57:08 জিএমটি সংস্থা: হেলসিঙ্কি বিশ্ববিদ্যালয়
মিনিক্স ব্যবহার করে ওখানকার সবাইকে হ্যালো -
আমি 386 (486) এটি ক্লোনগুলির জন্য একটি (ফ্রি) অপারেটিং সিস্টেম (কেবল একটি শখ, Gnu এর মতো বড় এবং পেশাদার হবে না) করছি। এটি এপ্রিল মাস থেকে তৈরি হচ্ছে, এবং প্রস্তুত হতে শুরু করে। মিনিক্সে পছন্দ / অপছন্দ করা লোকগুলির বিষয়ে আমি কোনও প্রতিক্রিয়া চাই, যেহেতু আমার ওএস এটি কিছুটা সাদৃশ্যযুক্ত (ফাইল-সিস্টেমের একই শারীরিক বিন্যাস (অন্যান্য কারণগুলির মধ্যে ব্যবহারিক কারণে))।
আমি বর্তমানে বাশ (1.08) এবং গিসি (1.40) পোর্ট করেছি এবং জিনিসগুলি কাজ করছে বলে মনে হচ্ছে। এর থেকে বোঝা যায় যে আমি কয়েক মাসের মধ্যে ব্যবহারিক কিছু পেয়ে যাব এবং বেশিরভাগ লোকেরা কী বৈশিষ্ট্যগুলি চান তা জানতে চাই। কোনও পরামর্শ স্বাগত, কিন্তু আমি সেগুলি বাস্তবায়ন করব না promise
লিনাস (torvalds@kruuna.helsinki.fi)
গীত। হ্যাঁ - এটি কোনও মিনিক্স কোড মুক্ত, এবং এটিতে একটি বহু-থ্রেডযুক্ত fs রয়েছে। এটি প্রতিরক্ষামূলক নয় (386 টাস্ক স্যুইচিং ইত্যাদি ব্যবহার করে), এবং এটি সম্ভবত এটি-হার্ডডিস্কগুলি ব্যতীত অন্য কোনও কিছুকে সমর্থন করবে না, যেমনটি আমার কাছে রয়েছে :-(।
আমি লিনাস.টিএসটিএস্ট নামে একটি ফাইল তৈরি করি , আমি সামগ্রীটি পেস্ট করি এবং তারপরে আমি কনসোলে লিখি:
sed -e 's/[^[:alpha:]]/ /g' linus.txt | tr '\n' " " | tr -s " " | tr " " '\n'| tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | nl
আউট পুট হবে:
1 7 i
2 5 to
3 5 like
4 5 it
5 5 and
6 4 minix
7 4 a
8 3 torvalds
9 3 of
10 3 helsinki
11 3 fi
12 3 any
13 2 would
14 2 won
15 2 what
16 ...
আপনি যদি কেবল প্রথম 20 টি শব্দ কল্পনা করতে চান:
sed -e 's/[^[:alpha:]]/ /g' text_to_analize.txt | tr '\n' " " | tr -s " " | tr " " '\n'| tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | nl | head -n 20
জেনে রাখা জরুরী যে টিআর 'এজেড' 'এ-জেড' কমান্ডটি এখনও ইউটিএফ -8 সাপোর্ট করে না , যাতে বিদেশী ভাষায় এপ্রিস শব্দটি এপ্রিস হিসাবে অনুবাদ করা যায়।
আপনি যদি কেবলমাত্র একটি শব্দের উপস্থিতি সন্ধান করতে চান তবে আপনি শেষে একটি গ্রেপ যুক্ত করতে পারেন:
sed -e 's/[^[:alpha:]]/ /g' text_to_analize.txt | tr '\n' " " | tr -s " " | tr " " '\n'| tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | nl | grep "\sword_to_search_for$"
Search_freq নামে একটি স্ক্রিপ্টে :
#!/bin/bash
sed -e 's/[^[:alpha:]]/ /g' text_to_analize.txt | tr '\n' " " | tr -s " " | tr " " '\n'| tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | nl | grep "\s$1$"
লিপিটি অবশ্যই কল করতে হবে:
search_freq word_to_search_for
sed: -e expression #2, char 7: unterminated
s 'কমান্ড`, এটিও সমস্ত শব্দ গণনা করে, তাই না? তবে ওপি একটি নির্দিষ্ট একজনকেই জিজ্ঞাসা করেছিল। এছাড়াও একটি বিট বিট সুন্দর হবে।
আপনি কীগুলিতে বা JSON ডেটার মানগুলিতে শব্দের সাথে মিল রাখতে চান কিনা তার উপর নির্ভর করে আপনি কেবলমাত্র কী বা ডেটা থেকে কেবল মানগুলি বের করতে চাইবেন। অন্যথায় আপনি কিছু শব্দকে কী এবং মান উভয় হিসাবে দেখা দিলে খুব বেশি বার গণনা করতে পারেন।
সমস্ত কী বের করতে:
jq -r '..|objects|keys[]' <file.json
এটি পুনরুক্তরূপে পরীক্ষা করে যে বর্তমান জিনিসটি কোনও বস্তু কিনা এবং এটি যদি হয় তবে এটি কীগুলি বের করে। আউটপুটটি প্রতিটি লাইনে কীগুলির একটি তালিকা হবে।
সমস্ত মান বের করতে:
jq -r '..|scalars' <file.json
এটি একইভাবে কাজ করে, তবে কয়েকটি পদক্ষেপ কম রয়েছে।
এরপরে আপনি উপরের আউটপুটটি পাইপ করতে পারেন grep -c 'PATTERN'
(কীগুলি বা মানগুলির সাথে কিছু প্যাটার্নের সাথে মেলে), বা grep -c -w -F 'WORD'
( কী বা মানগুলির সাথে একটি শব্দের সাথে মিল রাখতে ), বা grep -c -x -F 'WORD'
(একটি সম্পূর্ণ কী বা মানটির সাথে মেলে), বা অনুরূপ, আপনার গণনা করা
এই জাতীয় কিছু নিয়ে আমার কাছে জেএসন রয়েছে: "number":"OK","number":OK"
এক লাইনে একাধিকবার পুনরাবৃত্তি।
আমার সাধারণ "ওকে" কাউন্টার:
sed "s|,|\n|g" response | grep -c OK
আমি উপস্থিতির সংখ্যা খুঁজতে নীচে awk কমান্ড ব্যবহার করেছি
উদাহরণ ফাইল
বিড়াল ফাইল 1
praveen ajay
praveen
ajay monkey praveen
praveen boy praveen
কমান্ড প্রয়োগ করুন:
awk '{print gsub("praveen",$0)}' file1 | awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}'
আউটপুট
awk '{print gsub("praveen",$0)}' file1 | awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}'
5
awk '{sum+=gsub("praveen","")} END {print sum+0}'
।
{ "key": "the key" }
স্ট্রিংটি গণনা করা উচিতkey
।