এখানে একটি sed
সমাধান:
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
কমান্ডটি sed 's/^://'
যা করছে তা হ'ল খালি স্ট্রিং সহ প্রতিটি লাইনের শুরু থেকে s
কোলন চরিত্রটি প্রতিস্থাপন করা ।:
^
//
এখানে একটি জটিল awk
সমাধান দেওয়া হয়েছে, যেখানে আমরা ক্ষেত্রের বিভাজকটিকে ^:
উপরে বর্ণিত, এবং দ্বিতীয় ক্ষেত্রের (প্রতিটি লাইনের) আউটপুট পরিবর্তন করব :
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
টাস্কটি grep
( ব্যাখ্যা ) দিয়েও সম্পাদন করা যেতে পারে , সম্ভবত এটি প্রচুর পরিমাণে ডেটার জন্য দ্রুত সমাধান হতে পারে:
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
অথবা নিম্নলিখিত কমান্ডের মাধ্যমে ফাইলটি সরাসরি প্রক্রিয়া করুন, যেখানে সীমাবদ্ধতাটি ^
সরানো হয়েছে:
grep -Po 'Logfile started :\K.*' process.log
উপরোক্ত sed
দলগুলি এবং ক্যাপচার দ্বারাও অর্জন করা যেতে পারে ()->\1
:
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
যেখানে অভিব্যক্তিটি ^.*<something>.*$
পুরো লাইনের সাথে মিলবে, এতে রয়েছে <something>
। কমান্ডটি s/old/new/
প্রথম ক্যাপচার গ্রুপের সামগ্রী দ্বারা এই লাইনটিকে প্রতিস্থাপন করবে (বন্ধনীগুলির মধ্যে প্রকাশ আরও কংক্রিট হতে পারে)। বিকল্পটি -r
বর্ধিত নিয়মিত অভিব্যক্তিগুলিকে সক্ষম করে। বিকল্পটি -n
স্বাভাবিক আউটপুটকে দমন করবে sed
এবং শেষ অবধি কমান্ডটি p
মিলগুলি মুদ্রণ করবে।