উত্তর:
আপনার প্রকৃত অর্থ যা ধরে নিচ্ছেন তা হ'ল আপনি সর্বশেষ কোলন পর্যন্ত সমস্ত কিছু মুছতে এবং john.doe
অক্ষত রেখে যেতে চান :
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' |
sed 's/.*://'
প্রথম লাইন sed
উদাহরণস্বরূপ পরীক্ষার স্ট্রিংটিকে কেবল পাইপ দেয় ।
দ্বিতীয়টি একটি মৌলিক sed
প্রতিস্থাপন । প্রথম এবং দ্বিতীয়টির মধ্যবর্তী অংশটি /
অনুসন্ধান করার জন্য রেজেক্স এবং দ্বিতীয় এবং তৃতীয়টির মধ্যবর্তী অংশটি এটির সাথে প্রতিস্থাপন করবে (আমরা মুছে ফেলার সাথে এই ক্ষেত্রে কিছুই নেই)।
রেজেক্সের জন্য, যে .
কোনও চরিত্রের সাথে মেলে, *
এটি যেকোন সংখ্যক (শূন্য সহ) পুনরাবৃত্তি করে এবং :
কোলনের সাথে মেলে। সুতরাং কার্যকরভাবে এটি কোনও কোলন অনুসরণ করে। যেহেতু .*
একটি কোলন অন্তর্ভুক্ত করতে পারে, তাই ম্যাচটি 'লোভী' এবং শেষ কোলনের সমস্ত কিছু অন্তর্ভুক্ত।
sed -r 's/:/\t/g' filename | awk -F'\t' '{print $4}'
আমি সমস্ত ঘটনাকে প্রতিস্থাপন করছি : একটি ট্যাব দিয়ে এবং তারপরে awk
john.doe স্ট্রিংটি বের করার জন্য ব্যবহার করছি।
আপনার কাছে ফাইল না থাকলে আপনি এটি চেষ্টা করে দেখতে পারেন।
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | sed -r 's/:/\t/g' |
awk -F'\t' '{print $4}'
গ্রামের মন্তব্য অনুসারে আমরা নীচের মত চলকটি awk
ব্যবহার করে একা সর্বশেষ কলামটি মুদ্রণ করতে পারি ।NF
awk
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | sed -r 's/:/\t/g' | awk -F'\t' '{print $NF}'
অপ্রয়োজনীয়তা থেকে মুক্তি পেতে গ্রিমের মন্তব্যগুলিকে অন্তর্ভুক্ত করা sed
কমান্ডটি নীচের মত পরিবর্তন করা যেতে পারে।
echo 'hd_ma_prod_customer_ro:*:123456789:john.doe' | awk -F':' '{print $NF}'
awk
। মূলত, আমি যে উত্তরগুলি আমার উত্তর পেয়েছিলাম তা পরীক্ষার চেষ্টা করি এবং ব্যবহারকারীর প্রয়োজনীয়তা অনুসারে সেগুলি সংশোধন করার চেষ্টা করি। :)
-F
জন্য বিকল্প awk
নির্দিষ্ট করে ক্ষেত্র বিভাজক। আপনি যদি awk
কোলন ব্যবহার করতে বলেন, ট্যাবগুলি দিয়ে কলোনগুলি প্রতিস্থাপন করার দরকার নেই। এছাড়াও, আপনি যদি সর্বশেষ ক্ষেত্রটি পেতে চান তবে $NF
পরিবর্তে ব্যবহার করতে পারেন $4
, যদি সর্বদা 3 টি কলোন না থাকে তবে এটি কাজ করবে।
আর একটি পদ্ধতি ব্যবহার করে awk
:
awk -F: '{ print $NF }'
চেষ্টা করুন
সম্পাদনা: সরানো অ্যাঙ্কর
echo 'abc:fjk' |sed 's/.*:/john.doe/g'
এবং মুছতে
echo 'abc:fjk' |sed 's/.*://g'
^
নোঙ্গর পারেন প্রশ্ন মামলার অথবা আপনার উদাহরণ ক্ষেত্রে কোনো পার্থক্য করে তোলে। শুরু কোনো ঠিকানা /.*
ইতিমধ্যে বোঝা ^
।
awk
, তবে কেন শুধু করবেন নাawk -F:
?