פורסם: 24/06/2013 - 13:35
נושא ההודעה: מציאת חלק ממילה בתוך קובץ
|
מציאת חלק ממילה בתוך קובץ והדפסה רק של המילה , לא של כל השורה !
מישהוא יכול בבקשה לעזור ???
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 14:11
נושא ההודעה: Re: מציאת חלק ממילה בתוך קובץ
|
YNAAMA : | מציאת חלק ממילה בתוך קובץ
|
אתה מתכוון כמו ctrlF?
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 14:18
נושא ההודעה:
|
grep -o -E '\w*(my_expression)\w*' /etc/passwd
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 15:31
נושא ההודעה:
|
קוד: | cat file | tr ' ' '\n' | grep word |
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 15:51
נושא ההודעה:
|
WobnI - work : | קוד: | cat file | tr ' ' '\n' | grep word |
|
זה כמעט אף פעם לא נכון לעשות
רוב הפקודות לטיפול בטקסט תומכות בקריאת קובץ ומשתמשות בSTDIN רק כברירת מחדל, כך שכמעט תמיד ניתן לעשות
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 16:03
נושא ההודעה: הסבר
|
אוף לא כזה עוזר לי ...
אני כאילו צריך לקרוא לקרוא קובץ ובקובץ יש שני נתונים אחד זה הנתיב של סקריפט והשני זה היוזר .
אני צריך שיהיה לי רק את הנתיבים... אז חשבתי לחפש את כל מה שמסתיים ב״.sh״, אז איך עושים את זה
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 17:16
נושא ההודעה:
|
בשלב שבו מבקש העזרה לא קורא את האפשרויות שנתנו לו, לא מנסה, לא בודק, וגם לא ממש עושה מאמץ להסביר מה בדיוק הוא רוצה, זה הזמן לפרוש.
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 17:29
נושא ההודעה:
|
Anonymous : | WobnI - work : | קוד: | cat file | tr ' ' '\n' | grep word |
|
זה כמעט אף פעם לא נכון לעשות
רוב הפקודות לטיפול בטקסט תומכות בקריאת קובץ ומשתמשות בSTDIN רק כברירת מחדל, כך שכמעט תמיד ניתן לעשות
|
אם כך, מה הפיתרון שלך?
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 18:37
נושא ההודעה:
|
WobnI - work : | Anonymous : | WobnI - work : | קוד: | cat file | tr ' ' '\n' | grep word |
|
זה כמעט אף פעם לא נכון לעשות
רוב הפקודות לטיפול בטקסט תומכות בקריאת קובץ ומשתמשות בSTDIN רק כברירת מחדל, כך שכמעט תמיד ניתן לעשות
|
אם כך, מה הפיתרון שלך? |
מכייון שהבעיה לא מוגדרת אין לי פתרון, אבל את הפקודה שלך הייתי מחליף ב
קוד: |
tr ' ' '\n' <file | grep word
|
ומקבל אותו אפקט בדיוק
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 20:10
נושא ההודעה:
|
במקום השימוש ב־tr אפשר להשתמש באפשרות -o של grep, כמו שהציע כבר בהתחלה האורח.
נדמה לי שהצעתו לחיתוך בגבולות מילים לא תעבוד (מה קורה כאשר המילה נמצאת בתחילת או סוף שורה?). אבל במקום זה אפשר להשתמש באפשרות מועילה אחרת של grep: -w.
לאחר קריאת התיאור הנוסף הלא לגמרי ברור של המשתמש חשבתי שאולי עדיף יהיה דווקא להשתמש כאן ב־awk או ב־sed (אלא אם כן ההפרדה בין השדות מספיק פשוטה ואפשר להשתמש ב־cut).
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 20:24
נושא ההודעה:
|
Anonymous : | WobnI - work : | Anonymous : | WobnI - work : | קוד: | cat file | tr ' ' '\n' | grep word |
|
זה כמעט אף פעם לא נכון לעשות
רוב הפקודות לטיפול בטקסט תומכות בקריאת קובץ ומשתמשות בSTDIN רק כברירת מחדל, כך שכמעט תמיד ניתן לעשות
|
אם כך, מה הפיתרון שלך? |
מכייון שהבעיה לא מוגדרת אין לי פתרון, אבל את הפקודה שלך הייתי מחליף ב
קוד: |
tr ' ' '\n' <file | grep word
|
ומקבל אותו אפקט בדיוק |
לדעתי אין כלכך הבדל בין המימוש לך לשלי, בסופו של דבר שנינו מנווטים מידע לתוך TR.
|
|
חזרה לתוכן הדיון |
פורסם: 24/06/2013 - 20:24
נושא ההודעה: Re: הסבר
|
Ynaama : | אוף לא כזה עוזר לי ...
אני כאילו צריך לקרוא לקרוא קובץ ובקובץ יש שני נתונים אחד זה הנתיב של סקריפט והשני זה היוזר .
אני צריך שיהיה לי רק את הנתיבים... אז חשבתי לחפש את כל מה שמסתיים ב״.sh״, אז איך עושים את זה |
ענו לך כמה פעמים...
התשובה המדוייקת (אחת מהן לפחות) היא:
קוד: | grep -o -E '[[:alnum:]/]+\.sh' filename |
רק תחליץ את המילה filename בשם הקובץ שאתה רוצה לקרוא
_________________
|
|
חזרה לתוכן הדיון |
פורסם: 25/06/2013 - 00:25
נושא ההודעה: Re: הסבר
|
Ynaama : | אוף לא כזה עוזר לי ...
אני כאילו צריך לקרוא לקרוא קובץ ובקובץ יש שני נתונים אחד זה הנתיב של סקריפט והשני זה היוזר .
אני צריך שיהיה לי רק את הנתיבים... אז חשבתי לחפש את כל מה שמסתיים ב״.sh״, אז איך עושים את זה |
אולי תתן דוגמה לקובץ ומה אתה רוצה שהפקודה תחזיר?
שים לב ששמות של סקריפטים לא חייבים להסתיים ב.sh, הם יכולים להיות בלי סיומת בכלל (כמו רוב הסקריפטים במערכת, האמת).
אם אתה יודע איפה בשורה נמצא השם של הסקריפט, אתה יכול למשל לבקש רק את המילה השנייה בכל שורה עם הפקודה הזו:
קוד: |
awk '// {print $2}' filename
|
או שאתה יכול לבדוק אם יש שמות של קבצי הרצה בקובץ:
קוד: |
awk '// { if ( system( "test -x \"" $0 "\"" ) == 0 ) { print $0 } }' RS=" " filename
|
|
|
חזרה לתוכן הדיון |
פורסם: 25/06/2013 - 10:09
נושא ההודעה:
|
WobnI - work : | Anonymous : | WobnI - work : | Anonymous : | WobnI - work : | קוד: | cat file | tr ' ' '\n' | grep word |
|
זה כמעט אף פעם לא נכון לעשות
רוב הפקודות לטיפול בטקסט תומכות בקריאת קובץ ומשתמשות בSTDIN רק כברירת מחדל, כך שכמעט תמיד ניתן לעשות
|
אם כך, מה הפיתרון שלך? |
מכייון שהבעיה לא מוגדרת אין לי פתרון, אבל את הפקודה שלך הייתי מחליף ב
קוד: |
tr ' ' '\n' <file | grep word
|
ומקבל אותו אפקט בדיוק |
לדעתי אין כלכך הבדל בין המימוש לך לשלי, בסופו של דבר שנינו מנווטים מידע לתוך TR. |
ההבדל הוא תהליך אחד פחות וצינור אחד פחות, פקודה קצרה ופשוטה יותר.
|
|
חזרה לתוכן הדיון |
|