لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ایجاد یک کد شل اسکریپت
2010-09-29, 10:35 PM,
ارسال : #1
مشکل در ایجاد یک کد شل اسکریپت
با سلام و عرض ادب
دوستان مشکلی در مورد ایجاد یک کد خیلی ساده در محیط شل لینوکس دارم که ابتدا مشکل رو بیان میکنم و اگر دوستان محبت کنند کمک کنند
با استفاده از دستور cut چهار فیلد از تمام فیلد های موجود در یک فایل را که دائما با آن سروکار خواهیم داشت جدا میکنیم و میخواهیم این چهار فیلد به همین ترتیب که جدا سازی شده اند در جایی ریخته شوند و یا بدون ذخیره در فایلی سریعا در ادامه یک دستور قرار گیرند و سپس آن دستور اجرا شود و خروجی را مشاهده کنیم ...
به این صورت که مثلا :
cat /var/log/file.log | cut -f2,3,5d" "
یک خروجی دارد مانند زیر
192.168.10.2 80 192.168.20.3 1122
، میخواهم 4 آرگومان را که به ترتیب در کنار هم قرار میگیرند را بعد از یک فایل اجرایی با نام forward.sh اضافه کنم و سپس آن فایل اجرا شود و به من خروجی دهد .
مثلا به شکل زیر شود :
forward.sh 192.168.10.2 80 192.168.20.3 1122
خیلی در اینترنت جستجو کردم ولی نمیدانستم دنبال چه چیزی بگردم و دیگر زمان زیادی ندارم و از دوستان محترم و عزیز خواهش میکنم اگر ممکن است به من کمک کنید تا بتوانم این کار را به سرانجام برسونم
باتشکر فراوان
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-09-30, 08:14 AM,
ارسال : #2
پاسخ: مشکل در ایجاد یک کد شل اسکریپت
سلام
بعداز جدا سازی چند تا راه دارید .... یکیش اینه که همرو به یک فایل هدایت کنید .... وبعدش بخونید
کد :
in1=awk {' print $1 '} your file
in2=awk {' print $2 '} your file
in3=awk {' print $3 '} your file

in your script :
input1=$1
input2=$2
input3=$3
and So on :d
./your script in1 in2 in3
در ضمن باید روش جستجوی شما نادرست بوده باشه که به نتیجه نرسیده ..... چون به حد کافی همه چیز هست مخصوصا که گوگل هم هست ..........

تا با غم عشق تو مرا کار افتاد بیچاره دلم در غم بسیار افتاد
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-09-30, 10:11 AM,
ارسال : #3
پاسخ: مشکل در ایجاد یک کد شل اسکریپت
همچنین می‌توانید از دستور xargs استفاده کنید و تعداد پارامترها را توسط سوئیچ n مشخص کنید:

کد :
echo 1 2 3 4 5 6 7 8 9 10 11 12 | xargs -n 4 echo

اما اگر تعداد پارامترهای خروجی دستور شما همواره چهارتاست، پس نیازی به استفاده از سوئیچ n نیست، بطور مثال با توجه به دستوری که نوشتید:

کد :
cat /var/log/file.log | cut -f2,3,5d" " | xargs forward.sh

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-09-30, 01:39 PM,
ارسال : #4
پاسخ: مشکل در ایجاد یک کد شل اسکریپت
سلام ممنون از محبت هر دو دوستان ، با توجه به اینکه همواره در فایل file.log اطلاعاتی در حال ذخیره شدن است پس فقط یک خروجی ندارد و ممکن است هر 2 ثانیه و یا شاید 2 ساعتی یک بار چنین داده ایی وارد فایل شود تا cut و در آخر فراخوانی شود ، برای این مسئله راه حلی هست ؟
با این روال که من پیش رفته ام و مثلا با grep یک خط خاص را جدا کنم ، فقط میتوانم همان یک خط جدا شده را فراخوانی کنم و در صورتیکه مجددا لاگ اضافه شد ؟؟؟
بینهایت متشکرم از لطف و عنایت شما دوستان گرامی و مهربان
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-09-30, 02:32 PM,
ارسال : #5
پاسخ: مشکل در ایجاد یک کد شل اسکریپت
به جای استفاده از دستور cat از دستور tail -f برای خواندن فایل استفاده کن .

Debian GNU/Linux System Administrator
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-09-30, 03:02 PM,
ارسال : #6
پاسخ: مشکل در ایجاد یک کد شل اسکریپت
می‌خواستم پیشنهاد بدم که از فایل‌های FIFO استفاده کنی، اما این روشی که mah454 اشاره کردند، روش بهتر و ساده‌تری است Smile و باید خروجی ناشی از grep را در یک فایل append کنید (بجای < از << استفاده کنید) و سپس همان فایل را با دستوری که گفته شد بخوانید.

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان