উত্তর:
কয়েকটি সংস্করণে sort
একটি -z
বিকল্প রয়েছে, যা নাল-সমাপ্ত রেকর্ডগুলির জন্য মঞ্জুরি দেয়।
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
অতিরিক্তভাবে, আপনি এটি করতে একটি উচ্চ-স্তরের স্ক্রিপ্টও লিখতে পারেন:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
এটি যুক্তির মাধ্যমে ডাকা হয়েছে তা নিশ্চিত করার জন্য -r
বিকল্পটি যুক্ত করুন ।xargs
myCommand
-t \0
সাজানোর জন্য বিকল্প (যা একটি হল -z
প্রতিশব্দ)
|sort
সমাধানগুলির সমস্যা হ'ল আপনি -exec
আর ব্যবহার করতে পারবেন না । ঠিক আছে, যদিও আপনার বিবৃতিটি -exec
যাতে এটি দিয়ে কাজ করে তাতে পুনরায় লেখা সম্ভব হয় xargs
, প্রশ্নটি হল "মিনি-স্ক্রিপ্টগুলি" সম্পর্কে কী ? ( sh -c ...
) আমি একাধিক কমান্ডের সাহায্যে 'sh -c' মিনি-স্ক্রিপ্টকে রূপান্তর করতে সেই তুচ্ছটিকে কল করব না যাতে এটি xargs
(যদি সম্ভব হয় তবে, তা) কাজ করতে পারে
printf %s\\n a b c d e | xargs -n3 sh -c 'printf %s, "$@"; printf \\n' x
আমি মনে করি আপনার -n
সাজানোর জন্য পতাকাটি দরকার #
মানুষের অনুসারে সাজান:
-n, --numeric-sort
compare according to string numerical value
সম্পাদন করা
মুদ্রণ0 এর সাথে কিছু করার থাকতে পারে, আমি এটি ঠিক পরীক্ষা করেছি। মুদ্রণ0 টি বের করুন, আপনি -z
পতাকাটি ব্যবহার করে স্ট্রিংটি বাছাই করে বাতিল করতে পারেন
print0
এটি ফাইল-নামগুলি স্পেস-বিভাজন হিসাবে দেখা যাচ্ছে যা আমার কমান্ডের কাছে যা দরকার তা হ'ল দুর্ভাগ্যক্রমে
আপনার যদি জিএনইউ সমান্তরাল http://www.gnu.org/software/parallel/ ইনস্টল থাকে তবে আপনি এটি করতে পারেন:
find folder1 folder2 -name "*.txt" -print |
sort |
parallel myCommand
আপনি জিএনইউ সমান্তরাল সহজেই এটি ইনস্টল করতে পারেন:
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
আরও জানতে জিএনইউ সমান্তরালের জন্য অন্তর্ভুক্ত ভিডিওগুলি দেখুন: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
.
ভিন্নভাবে পরিচালনা করে ...sort
তালিকাটির শেষে এটি বাতাসে চলে যায় ...python
এটি শীর্ষে সাজানো থাকে। (সম্ভবতLC_COLLATE=C