কলামগুলিতে যোগদানের স্ক্রিপ্ট


1

আমার দুটি ফাইল রয়েছে:

যার আউটপুট yum list installedএখন yum_installed এবং yum list updatesএখন yum_updates হিসাবে

আমার যা দরকার তা হ'ল মূলত দু'টি ফাইলেই যুক্ত হওয়া কিন্তু কেবলমাত্র প্যাকেজগুলির উপর নির্ভর করে যেগুলি আপডেট করতে হবে। বলি আমার 'yum_installed' ফাইলটিতে তাত্ত্বিকভাবে 6 টি প্যাকেজ রয়েছে:

openssh-clients.i386                  4.3p2-82.el5                     installed
openssh-server.i386                   4.3p2-82.el5                     installed
openssl.i686                          0.9.8e-22.el5_8.4                installed
oprofile.i386                         0.9.4-20.el5                     installed
orca.i386                             1.0.0-5.el5                      installed
pam.i386                              0.99.6.2-12.el5                  installed

আমার yum_updates বলতে কেবল এই প্যাকেজগুলি ধারণ করতে দেয় তবে আপনি যদি লক্ষ্য করেন তবে কেবল ওপেনসেলটি আপডেট করা দরকার যাতে এটি 1 প্যাকেজ is

ntp.i386                             4.2.2p1-17.el5.centos               updates
openldap.i386                        2.3.43-28.el5_10                    updates
openssl.i686                         0.9.8e-27.el5_10.4                  updates
pcre.i386                            6.6-9.el5                           base   
perl.i386                            4:5.8.8-41.el5                      base   
pidgin.i386                          2.6.6-32.el5                        updates

আমি যা করতে চাই তা হল কেবলমাত্র এই ক্ষেত্রে প্যাকেজটি রয়েছে, ওপেনসেল এবং এটিতে নেক্সট, বর্তমান এবং তারপরে আপডেট হওয়া সংস্করণ versions আমার yum_installed ফাইলটি দীর্ঘ এবং এতে প্যাকেজ রয়েছে যা আপডেট করার দরকার নেই। আমি তাদের সম্পর্কে চিন্তা করি না।

ফাইনাল আউটপুটটি দেখতে দেখতে দেখতে (স্পেস সীমিত রেখাটি ভাল তবে এখানে আউটপুট আলাদা করতে পাইপ ব্যবহার করছি))

openssl.i686 | 0.9.8e-22.el5_8.4 | 0.9.8e-22.el5_8.4

আমার মনে হয় আপনার দরকার হবে yum check-updateবা yum list updates
উজসোল্ট

হ্যাঁ, yum check-updateআপনি যা খুঁজছেন
গ্লেন জ্যাকম্যান

আমি এই আদেশটি সম্পর্কে জানি কিন্তু এটি কোনও লাভ করে না কারণ আমি তুলনা করতে পারি না। আমার মূলত কোনটি বর্তমান এবং কোনটি আপডেট করা উচিত তার মধ্যে একটি তুলনা দেখাতে হবে। পুরানো প্যাকেজ বনাম একই লাইনে নতুন প্যাকেজ। আমার নিচের লাইন উদ্দেশ্য এখানেই
unixpipe

উত্তর:


0

এটি একটি পদ্ধতির:

$ awk 'FNR==NR {a[$1]=$2; next} $1 in a && a[$1]!=$2 {print $1, a[$1], $2}' OFS="\t" inst upd
openssl.i686    0.9.8e-22.el5_8.4   0.9.8e-27.el5_10.4

এটা মাধ্যমে loops installedফাইল এবং যুগল সঞ্চয় করে (package, version)a[]অ্যারে। তারপরে এটি updatedতালিকাটি থেকে বেরিয়ে আসে এবং চেক করে:

  • যদি প্যাকেজ সংরক্ষণ করা হয় এবং
  • সংস্করণটি installedTHEN এর জন্য সঞ্চিত সাথে মেলে না
  • প্রিন্ট package+ installed+ update

0

"Join" কমান্ডটি দেখুন, সম্ভবত আপনি যা চান তা করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.