উত্তর:
sed 's/.$//'
শেষ চরিত্রটি সরাতে।
তবে এই নির্দিষ্ট ক্ষেত্রে, আপনি এটি করতে পারেন:
df -P | awk 'NR > 1 {print $5+0}'
গাণিতিক অভিব্যক্তি ( $5+0
) সহ আমরা awk
5 তম ক্ষেত্রটিকে একটি সংখ্যা হিসাবে ব্যাখ্যা করতে বাধ্য করি এবং সংখ্যার পরে যে কোনও কিছু উপেক্ষা করা হবে।
নোট করুন যে GNU df
(আপনার -h
ইতিমধ্যে একটি GNU এক্সটেনশন, যদিও এখানে প্রয়োজন নেই) এছাড়াও কেবল ডিস্ক ব্যবহারের শতাংশের ফলাফল আউটপুট করতে বলা যেতে পারে:
df --output=pcent | tail -n +2 | tr -cd '0-9\n'
(লেজ শিরোনামগুলি ছেড়ে যায় এবং টিআরটি অঙ্কগুলি এবং লাইন সীমানারগুলি বাদ দিয়ে সবকিছু সরিয়ে দেয়)।
লিনাক্সে, আরও দেখুন:
findmnt -no USE%
{print +$5}
পাশাপাশি কাজ করবে ...
awk
বাস্তবায়ন রয়েছে যেখানে এটি কার্যকর হয় না , যেখানে +
অ্যানারি অপারেটর কেবল উপেক্ষা করা হয় এবং স্ট্রিংগুলিকে সংখ্যায় রূপান্তর করতে বাধ্য করে না।
সহ sed
, এটি বেশ সহজ:
$ cat file
Use%
22%
1%
1%
59%
51%
63%
5%
$ sed 's/.$//' file
Use
22
1
1
59
51
63
5
বাক্য গঠনটি হ'ল s(ubstitute)/search/replacestring/
। .
কোনো অক্ষর, এবং ইঙ্গিত $
লাইনের শেষে। সুতরাং .$
শুধুমাত্র শেষ চরিত্রটি সরিয়ে ফেলবে।
এই ক্ষেত্রে, আপনার সম্পূর্ণ কমান্ডটি দেখবে:
df -h | awk '{ print $5}' | sed 's/.$//'
sed
awk
df -h | awk '{gsub(/%/,""); print $5}'
আমার দুটি সমাধান রয়েছে:
কাটা: echo "somestring1" | rev | cut -c 2- | rev
এখানে আপনি স্ট্রিংটি বিপরীত করুন এবং ২ য় অক্ষর থেকে স্ট্রিংটি কেটে আবার বিপরীত করুন।
সেড: echo "somestring1" | sed 's/.$//'
এখানে আপনি নিয়মিত অভিব্যক্তি অনুসন্ধান করবেন .$
যার অর্থ কোনও অক্ষর একটি শেষ অক্ষর অনুসরণ করবে এবং এটিকে //
শূন্যের সাথে প্রতিস্থাপন করবে (দুটি স্ল্যাশের মধ্যে)
দারুণভাবে, আপনি একটি করতে পারেন could
awk '{sub(/%$/,"",$5); print $5}'
awk '{print substr($5, 1, length($5)-1)}'
অন্য পদ্ধতি:
mapfile -t list < <(df -h)
printf '%s\n' "${list[@]%?}"
এটি একটি ফাংশনে পরিণত করুন:
remove_last() {
local char=${1:-?}; shift
mapfile -t list < <("$@")
printf '%s\n' "${list[@]%$char}"
}
তারপরে এটিকে কল করুন:
remove_last '%' df -h
mapfile
একটি bash4 বৈশিষ্ট্য।
এখানে ধরাটি হ'ল আপনাকে অপসারণ করতে একটি অক্ষর সরবরাহ করতে হবে ; যদি আপনি এটি চান তবে শেষ চরিত্রটি যা ঘটে তা হ'ল আপনাকে অবশ্যই পাস করতে হবে '?'
বা ''
। উদ্ধৃতি আবশ্যক।
df -h | awk 'NR > 1{ print $5 }' | cut -d "%" -f1
cut -d '%' -f1
প্রথম '%' পর্যন্ত লাইনে সবকিছু পাওয়ার সঠিক উত্তর যা ব্যবহারের জন্য উত্সাহিত ।
sed -ie '$d' filename
here -i is to write changes
e means expression
$ means last line
d means delete
Note:Without -e option $ wont work
Alচ্ছিক : 1 ম এবং শেষ লাইনটি sed -ie '1d;$d'
ফাইলের নামটি মুছতে
%
লক্ষণ?