שאלה קטנה ב- UNIX (עזרה) - לינוקס, Mac ומערכות הפעלה אחרות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה קטנה ב- UNIX (עזרה)


spring10

Recommended Posts

אני צריך עזרה בכתיבה של תוכנית:

המשתמש מכניס 3 מחרוזות\משתנים (שם הקובץ, ושתי מספרים)

באמצעות איזו פקודת גזירת אני יכול לגזור את השורות ה 2-4 מהקובץ שמכיל:

20

14

6

100

3

אני צריך לגזור את שלושת המספרים 2-4 ולחבר בניהם כך שהסכום הכולל יהיה 120.

אשמח לעזרה, תודה.

קישור לתוכן
שתף באתרים אחרים

[ash@viridian ~]$ echo 20'
'14'
'6'
'100'
'3 >infile

[ash@viridian ~]$ cat infile
20
14
6
100
3

[ash@viridian ~]$ cat infile |head -n 4
20
14
6
100

[ash@viridian ~]$ cat infile |head -n 4 |tail -n 3
14
6
100

[ash@viridian ~]$ for i in `cat infile` ; do echo i=$i ; done
i=20
i=14
i=6
i=100
i=3

[ash@viridian ~]$ let s=0
[ash@viridian ~]$ let s+=14
[ash@viridian ~]$ let s+=6
[ash@viridian ~]$ let s+=100
[ash@viridian ~]$ echo $s
120

ועכשו, לחבר ביחד

קישור לתוכן
שתף באתרים אחרים

תודה על העזרה אבל אני החסרתי כמה פרטים מהשאלה שכנראה שינו את המטרה:

המשתמש צריך להכניס 3 משתנים:

file name

num1

num2

באמצעות פקודת read

המספרים בעצם צריכים להגיד כך את שורה num1 עד שורה num2 וחבר את סכום המספרים...

השאלה באמצעות פקודת cut איך אני לוקח שלוש שורות ומעביר לקובץ נגיד..

קישור לתוכן
שתף באתרים אחרים

במקום 4 ו 3 (שכתבתי בדוגמה), תיקח ערכים כלשהם שבא לך אם read - כך :

[ash@why ~]$ echo enter 1st line ; read x ; echo enter last line ; read y
enter 1st line
2
enter last line
4

[ash@why ~]$ echo $x ; echo $y
2
4

עכשו השימוש הנכון אם cut הוא אם הגדרת delimiter, אבל לא מצאתי אפשרות (חוץ מההאק אם ה ' ') להגדיר את ה delimiter כ שורה חדשה. \n לא עובד

לכן במקום cut ניתן להשתמש אם head ו tail. ב head אנחנו לוקחים מההחלה עד שורה y, וב tail אנחנו לוקחים במה שנשאר כמה שהוא שורות מהסוף. "כמה שהוא" זה y-x+1 (ניתן לחשב את זה על ידי let)

וההמשך כמו שעשינו מקודם

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...