আপনার কোনও echo
কমান্ডের দরকার নেই , পরিবর্তে এখানে স্ট্রিং ব্যবহার করুন :
text=$(tr -d ' ' <<< "$text")
কেবল কৌতূহলের জন্য আমি পরীক্ষা করেছিলাম যে এই ধরনের তুচ্ছ কাজ বিভিন্ন সরঞ্জামের জন্য কত সময় নেয়। এখানে ধীরতম থেকে দ্রুততম পর্যন্ত ফলাফলগুলি সাজানো হয়েছে:
abc="some text with spaces"
$ time (for i in {1..1000}; do def=$(echo $abc | tr -d ' '); done)
0.76s user 1.85s system 52% cpu 4.976 total
$ time (for i in {1..1000}; do def=$(awk 'gsub(" ","")' <<< $abc); done)
1.09s user 2.69s system 88% cpu 4.255 total
$ time (for i in {1..1000}; do def=$(awk '$1=$1' OFS="" <<< $abc); done)
1.02s user 1.75s system 69% cpu 3.968 total
$ time (for i in {1..1000}; do def=$(sed 's/ //g' <<< $abc); done)
0.85s user 1.95s system 76% cpu 3.678 total
$ time (for i in {1..1000}; do def=$(tr -d ' ' <<< $abc); done)
0.73s user 2.04s system 85% cpu 3.244 total
$ time (for i in {1..1000}; do def=${abc// /}; done)
0.03s user 0.00s system 59% cpu 0.046 total
খাঁটি শেল অপারেশনটি অবশ্যই আশ্চর্যজনক নয় যা আশ্চর্যজনক নয়, তবে এটি সত্যই কী চিত্তাকর্ষক যে এটি 100 গুণ বেশি গতিবেগের পরে সবচেয়ে ধীর কমান্ড!