আমার একটি ভেরিয়েবল রয়েছে যা প্রতিধ্বনির মতো দেখায়
$ echo $var
129 148
আউটপুট হিসাবে আমাকে নিতে হবে মাত্র 129। আমি কীভাবে 129 এবং 148 ভাগ করব?
আমার একটি ভেরিয়েবল রয়েছে যা প্রতিধ্বনির মতো দেখায়
$ echo $var
129 148
আউটপুট হিসাবে আমাকে নিতে হবে মাত্র 129। আমি কীভাবে 129 এবং 148 ভাগ করব?
উত্তর:
জেসনওয়ারিয়ান এর পরামর্শ ছাড়াও , আপনি ব্যবহার করতে পারেন cut
:
echo $var | cut -d' ' -f1
উপরে cut
গুলি echo
একটি স্থান বিভেদক (সঙ্গে আউটপুট -d ' '
) এবং আউটপুট প্রথম ক্ষেত্র ( -f1
)
cut
একটি স্ট্যান্ডার্ড ইউটিলিটি। আপনার স্ক্রিপ্ট সম্ভবত অন্য কোথাও একটি ত্রুটি আছে। আরও সাধারণভাবে, কখনই "এটি কাজ করছে না" বলবেন না। আপনি কী কোডটি চালিয়েছেন, ঠিক কী হয়েছিল এবং কপির পেস্ট ত্রুটি বার্তাগুলি সর্বদা বলুন।
এটি করার একটি পরিষ্কার উপায় হ'ল স্পেসে স্ট্রিং বিভক্ত করার জন্য ব্যাশ অ্যারে ব্যবহার করা। আপনি কেবল বন্ধনী ব্যবহার করে একটি অ্যারে ঘোষণা করতে পারেন:
var="129 148 181"
vars=( $var )
echo "First word of var: '${vars[0]}'"
echo "Second word of var: '${vars[1]}'"
echo "Third word of var: '${vars[2]}'"
echo "Number of words in var: '${#vars[@]}'"
echo $SHELL
প্রদর্শন করা উচিত: /bin/bash
বা অনুরূপ।
zsh
(;
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...