انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: کمک : کار بستن sed در یک چرخه [ پاسخ داده شد ]  (دفعات بازدید: 1111 بار)

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

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
touch newfile
for ((i=0;i<10;i++))
do
echo $i >>newfile
done

for((i=0;i<10;i++))
do
sed -n '1'p newfile
sed -n '$i'p newfile
done
sed شماره خط را میپذیرد لاکن متغیر i را نمیپذیرد . چرا ؟
نکته :
sed -n '1'p newfile : خط نخست از فایل newfile را چاپ میکند
« آخرین ویرایش: 07 آذر 1390، 12:58 ق‌ظ توسط doomhammer65ir »

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ به: کمک : کار بستن sed در یک چرخه
« پاسخ #1 : 06 آذر 1390، 08:00 ب‌ظ »
پاسخ :

touch newfile
for ((i=1;i<10;i++))
do
echo $i >>newfile
done

for((i=1;i<10;i++))
do
sed -n "$i"p newfile
done
« آخرین ویرایش: 31 خرداد 1391، 02:30 ق‌ظ توسط doomhammer65ir »

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ به: کمک : کار بستن sed در یک چرخه
« پاسخ #2 : 07 آذر 1390، 12:43 ق‌ظ »
روش احمقانه :
touch newfile ;
touch temp_newfile ;
for ((i=1;i<10;i++))
do
echo $i >>newfile;
done

for((i=1;i<10;i++))
do
var=`head -n $i newfile | grep -v -f temp_newfile` ;
echo $var;
echo $var >> temp_newfile ;
done

rm -f temp_newfile