আমি "xargsL" এর কাছাকাছি "xargsL" নামে একটি ছোট পোর্টেবল র্যাপার স্ক্রিপ্ট তৈরি করেছি যা বেশিরভাগ সমস্যার সমাধান করে।
Xargs এর বিপরীতে, xargsL প্রতি লাইনে একটি প্যাথনাম গ্রহণ করে। পথের নামগুলিতে (স্পষ্টতই) নিউলাইন বা NUL বাইট বাদে কোনও অক্ষর থাকতে পারে।
ফাইল তালিকায় কোনও উদ্ধৃতি অনুমোদিত বা সমর্থিত নয় - আপনার ফাইলের নামগুলিতে সমস্ত ধরণের সাদা জায়গা, ব্যাকস্ল্যাশ, ব্যাকটিক্স, শেল ওয়াইল্ডকার্ড অক্ষর থাকতে পারে এবং xargsL এগুলিকে আক্ষরিক অক্ষর হিসাবে প্রক্রিয়া করবে, কোনও ক্ষতি হয়নি।
একটি যুক্ত বোনাস বৈশিষ্ট্য হিসাবে, xargsL করবে না একবার কমান্ড চালাবে !
পার্থক্যটি দ্রষ্টব্য:
$ true | xargs echo no data
no data
$ true | xargsL echo no data # No output
XargsL এ প্রদত্ত যে কোনও যুক্তি xargs এর মাধ্যমে দেওয়া হবে।
এখানে "xargsL" POSIX শেল স্ক্রিপ্টটি রয়েছে:
#! /bin/sh
# Line-based version of "xargs" (one pathname per line which may contain any
# amount of whitespace except for newlines) with the added bonus feature that
# it will not execute the command if the input file is empty.
#
# Version 2018.76.3
#
# Copyright (c) 2018 Guenther Brunthaler. All rights reserved.
#
# This script is free software.
# Distribution is permitted under the terms of the GPLv3.
set -e
trap 'test $? = 0 || echo "$0 failed!" >& 2' 0
if IFS= read -r first
then
{
printf '%s\n' "$first"
cat
} | sed 's/./\\&/g' | xargs ${1+"$@"}
fi
স্ক্রিপ্টটি আপনার $ PATH তে কিছু ডিরেক্টরিতে রেখে দিন এবং ভুলে যাবেন না
$ chmod +x xargsL
স্ক্রিপ্ট এটি কার্যকর করার জন্য।