এখানে আরও একটি বাশ সমাধান (ব্যাশ 4):
minlen=5 # minimum length of a line
mapfile -tO1 < inputfile # Map the file to the array MAPFILE (by default)
# Start the array at index 1
for i in "${!MAPFILE[@]}"; do
(( ${#MAPFILE[i]} > minlen )) || unset MAPFILE[i] # Remove shorter elements
done
ফলস্বরূপ অ্যারে অপ্রয়োজনীয়, সুতরাং অ্যারে সূচকগুলি বজায় থাকে। যেহেতু আমরা 1 এ শুরু করেছি, সূচকগুলি হ'ল আমরা রেখার রেখার সংখ্যা। আমরা কেবল সেই লাইন সংখ্যাগুলি আউটপুট করতে পারি:
printf 'Long lines found at: '
printf '%d, ' "${!MAPFILE[@]}"
echo
অথবা আমরা লাইনগুলি নিজেরাই আউটপুট করতে পারি:
printf '%s\n' "${MAPFILE[@]}"
grep
), বা লাইন সংখ্যা হিসাবে বা অন্য কিছু হিসাবে (সম্ভবত আপনি তাদের উপর অন্য কোনও পদক্ষেপ প্রয়োগ করতে চান)? সম্ভবত এটি করার সর্বাধিক সম্মিলিত উপায় পরবর্তী লাইনগুলির সাথে কী করা হবে তার উপর নির্ভর করে।