আমি জানি যে আমি উত্তর করছি না xargs
প্রশ্ন সরাসরি কিন্তু এটি এর মূল্য উল্লেখ find
এর -exec
বিকল্প।
নিম্নলিখিত ফাইল সিস্টেম দেওয়া:
[root@localhost bokeh]# tree --charset assci bands
bands
|-- Dream\ Theater
|-- King's\ X
|-- Megadeth
`-- Rush
0 directories, 4 files
ড্রিম থিয়েটার এবং কিং এর এক্সে স্থানটি পরিচালনা করার জন্য ফাইন্ড কমান্ডটি তৈরি করা যেতে পারে So সুতরাং, গ্রেপ ব্যবহার করে প্রতিটি ব্যান্ডের ড্রামার খুঁজে পেতে:
[root@localhost]# find bands/ -type f -exec grep Drums {} +
bands/Dream Theater:Drums:Mike Mangini
bands/Rush:Drums: Neil Peart
bands/King's X:Drums:Jerry Gaskill
bands/Megadeth:Drums:Dirk Verbeuren
ইন -exec
বিকল্প {}
পথ সহ ফাইলের নাম ঘোরা। মনে রাখবেন যে আপনাকে এড়াতে বা উদ্ধৃতিতে এড়াতে হবে না।
-exec
এর টার্মিনেটর ( +
এবং \;
) এর মধ্যে পার্থক্যটি হ'ল +
এটি একটি কমান্ড লাইনে থাকা অনেক ফাইলের নামকে গ্রুপ করে। যেখানে \;
প্রতিটি ফাইল নামের জন্য কমান্ড কার্যকর করা হবে।
সুতরাং, find bands/ -type f -exec grep Drums {} +
ফলাফল হবে:
grep Drums "bands/Dream Theater" "bands/Rush" "bands/King's X" "bands/Megadeth"
এবং এর find bands/ -type f -exec grep Drums {} \;
ফলাফল হবে:
grep Drums "bands/Dream Theater"
grep Drums "bands/Rush"
grep Drums "bands/King's X"
grep Drums "bands/Megadeth"
এর ক্ষেত্রে grep
ফাইলের নাম মুদ্রণের ক্ষেত্রে এর পার্শ্ব প্রতিক্রিয়া রয়েছে।
[root@localhost bokeh]# find bands/ -type f -exec grep Drums {} \;
Drums:Mike Mangini
Drums: Neil Peart
Drums:Jerry Gaskill
Drums:Dirk Verbeuren
[root@localhost bokeh]# find bands/ -type f -exec grep Drums {} +
bands/Dream Theater:Drums:Mike Mangini
bands/Rush:Drums: Neil Peart
bands/King's X:Drums:Jerry Gaskill
bands/Megadeth:Drums:Dirk Verbeuren
অবশ্যই, grep
অপশনগুলি -h
এবং -H
ফাইলনামটি কীভাবে grep
বলা হোক না কেন তা মুদ্রিত হবে কিনা তা নিয়ন্ত্রণ করবে ।
xargs
xargs
কমান্ড লাইনে ম্যান ফাইলগুলি কীভাবে নিয়ন্ত্রণ করা যায় তাও নিয়ন্ত্রণ করতে পারে।
xargs
ডিফল্টরূপে সমস্ত আর্গুমেন্টকে এক লাইনে দলবদ্ধ করে। একই জিনিস যে -exec \;
ব্যবহার করে না xargs -l
। নোট করুন যে -t
অপশনটি xargs
কার্যকর করার আগে কমান্ডটি প্রিন্ট করতে বলেছে ।
[root@localhost bokeh]# find ./bands -type f | xargs -d '\n' -l -t grep Drums
grep Drums ./bands/Dream Theater
Drums:Mike Mangini
grep Drums ./bands/Rush
Drums: Neil Peart
grep Drums ./bands/King's X
Drums:Jerry Gaskill
grep Drums ./bands/Megadeth
Drums:Dirk Verbeuren
দেখুন যে -l
বিকল্পটি প্রতিটি ফাইলের জন্য গ্রেপ চালাতে xargs কে বলে।
ডিফল্ট বনাম (অর্থাত্ কোনও -l
বিকল্প নেই):
[root@localhost bokeh]# find ./bands -type f | xargs -d '\n' -t grep Drums
grep Drums ./bands/Dream Theater ./bands/Rush ./bands/King's X ./bands/Megadeth
./bands/Dream Theater:Drums:Mike Mangini
./bands/Rush:Drums: Neil Peart
./bands/King's X:Drums:Jerry Gaskill
./bands/Megadeth:Drums:Dirk Verbeuren
xargs
কমান্ড লাইনে কতগুলি ফাইল থাকতে পারে তার আরও ভাল নিয়ন্ত্রণ রয়েছে। -l
কমান্ড অনুযায়ী ফাইলের সর্বাধিক সংখ্যাটি বিকল্পটি দিন ।
[root@localhost bokeh]# find ./bands -type f | xargs -d '\n' -l2 -t grep Drums
grep Drums ./bands/Dream Theater ./bands/Rush
./bands/Dream Theater:Drums:Mike Mangini
./bands/Rush:Drums: Neil Peart
grep Drums ./bands/King's X ./bands/Megadeth
./bands/King's X:Drums:Jerry Gaskill
./bands/Megadeth:Drums:Dirk Verbeuren
[root@localhost bokeh]#
ওটা দেখ grep
কারণে দুটি ফাইলের নাম দিয়ে মৃত্যুদন্ড কার্যকর করা হয়েছিল -l2
।
ls |grep mp3 |sed -n "7p"
আপনি কেবল ব্যবহার করতে পারেনecho "Lemon Tree.mp3"
।