שלום! יש לי שאלה קטנה...

  • פותח הנושא minci
  • פורסם בתאריך

minci

New member
שלום! יש לי שאלה קטנה...

איך אפשר ליצור DELIMITER ב C-SHELL? אני מתכוון בעיקר מבחינת SYNTAX תודה לעונה הישר!
 

מוטציה1

New member
למה אתה צריך את זה?

תן דוגמא ונעזור: אם ב - awk מדובר - FS הוא המשתנה. אם ב - cut מדובר - -d . תהיה יותר מפורט וממוקד בשאלה.
 

minci

New member
בסדר!

אז סיפור המעשה הוא כזה, מה שאני צריך לעשות הוא לקרוא שורה שנראית כך: "A3>D4" מתוך קובץ המכיל כמה שורות דומות (יתכנו שורות לא תקינו כמו למשל :"A33> D4" השורה אינה תקינה כי יש "3" מיותר. שורות כמו "A4 > F4" גם מתקבלות. הרעיון שלי היה לשים את > ו < כDELIMITER כדי לקבל שני STRINGS ולבדוק את נכונותם. אגב אסור השימוש ב AWK...(טכניון...)
 

מוטציה1

New member
הפתרון שלי

הכי טוב אם תעלה את התרגיל כמו שהוא, מילה במילה, ואני אוריד לך פיתרון פקודה-בפקודה. בגדול: לעבור על הקובץ ולקרוא אותו למערך. לנתח כל שורה, וכל מילה בשורה: כל עוד הקובץ לא נגמר קרא שורה לתוך מערך (זה ייתן לך מילים בתוך תאים במערך, כאשר יש התעלמות מרווחים) כל עוד המערך לא הסתיים בדוק: האם המילה תקינה. תעלה את התרגיל ואני אוריד לך את ה syntax, (לא בא להתחיל שינויים, סליחה)
 

minci

New member
תודה על ההצעה!

מצאתי פתרון, אולי יעניין אותך כי הוא לא מוזכר באינטרנט או לפחות באתרים בהם ביקרתי. מצאתי אותו בMAN CUT בUNIX הפקודה CUT -F יוצרת מעין עמודות טקסט מתוך קובץ או מתוך STANDARD INPUT יש אפשרות לכתוב לפניה CUT -D"C" - F1" כדי להגדיר את C כ DELIMITER ולהפריד עמודות נבחרות בקובץ.(במקרה הזה עמודה ראשונה)
 
למעלה