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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: doomhammer65ir در 02 آذر 1390، 06:34 ب‌ظ

عنوان: کمک : کار بستن sed در یک چرخه [ پاسخ داده شد ]
ارسال شده توسط: doomhammer65ir در 02 آذر 1390، 06:34 ب‌ظ
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 را چاپ میکند
عنوان: پاسخ به: کمک : کار بستن sed در یک چرخه
ارسال شده توسط: doomhammer65ir در 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
عنوان: پاسخ به: کمک : کار بستن sed در یک چرخه
ارسال شده توسط: doomhammer65ir در 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