תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    למה head | grep (בלינוקס) נותן תוצאות לא נכונות ?

    תוכנה
    2
    4
    115
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • מ
      משחזר מידע נערך לאחרונה על ידי משחזר מידע

      אני משתמש בפקודה הבאה

      head -1 * | grep -l -r "xyz" * > /path/to/file
      

      על מנת לקבל רשימה של כל הקבצים ש"מתחילים" בxyz
      בפועל אני מקבל בפלט גם רשימה של קבצים שאינם עונים על הדרישות בכלל
      (דוגמה: קיבלתי ברשימה קבצים שאין בהם בכלל xyz)

      אציין שניסיתי גם head -c אבל הוא לא עובד בכלל

      מה לא טוב בפקודה הנ"ל ?

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • yossiz
        yossiz נערך לאחרונה על ידי yossiz

        @משחזר-מידע
        מתוך man grep:

        FILE of “-” stands for standard input. If no FILE is given, recursive searches examine the working directory, and nonrecursive searches read standard input.

        מכיון שעשית recursive וגם נתת שם של קובץ - *, הפקודה מתעלמת מ-standard input (שזה מה שאתה מעביר לו דרך ה-|) ובמקום זה הוא רץ על כל הקובץ.

        הפתרון לכאורה להוריד את ה-‎-r שאין לו שום משמעות בהקשר של חיפוש על standard input, וגם תוריד את ה-*. ואז לכאורה זה יעבוד (אבל לא רקורסיבית. לזה צריך להריץ את פקודת ה-head בצורה ריקורסיבית)

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה תגובה ציטוט 3
        • מ
          משחזר מידע נערך לאחרונה על ידי משחזר מידע

          @yossiz המעניין הוא שרוב המוחץ של הפלט כן היה נכון

          עריכה: קראתי שוב את תגובתך

          @yossiz אמר בלמה head | grep (בלינוקס) נותן תוצאות לא נכונות ?:

          ובמקום זה הוא רץ על כל הקובץ.

          זה העניין
          שהוא לא רץ על כל הקובץ
          כמו שכתבתי לעיל הרוב המוחלט תאם את קריטריון החיפוש
          בקבצים שהשתרבבו קבלתי תוצאות שלא תואם כלל את החיפוש דהיינו לא היה בפנים הקובץ xyz בכלל

          yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • yossiz
            yossiz @משחזר מידע נערך לאחרונה על ידי

            @משחזר-מידע
            למה שאאמין לך? 🙂 יותר מסתבר שאתה טועה במשהו מאשר להניח ש-grep טועה.

            האם נסית לצמצם את הפקודה למינימום ההכרחי כדי להדגים את הבעיה? (הפקודה שלמעלה בכל מקרה לא תקין כנ"ל). נסה למצוא את הדוגמה המצומצמת ביותר שמדגים את הבעיה ותעלה קובץ עבור test case ונראה.

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה תגובה ציטוט 2
            • 1 / 1
            • פוסט ראשון
              פוסט אחרון
            בא תתחבר לדף היומי!