עבור לתוכן

substring in linux

Featured Replies

פורסם

אני כותב batch ולאחר awk על הפקודה top אני מקבל רשימה של ערכים כאלה:

0.7%sy

0.9%sy

וכו' (אני לא יודע כמה ספרות יש מעבר לתצוגת- D.D, ייתכן ויש 10.7%sy?? )

אני רוצה לכתוב לתוך קובץ רק את המספר ללא הסיומת %sy

איך אני עושה זאת?

הבעייה שאין לי את הפקודות:

index

sub

match

split מחזיר לי הודעות שגיאה

syntax error near unexpected token `"0.7%sy",'

תודה

פורסם

תוכל להשתמש גם בפקודה: sar שתיתן לך את אותם הנתונים.


[root@upm ~]# sar -u

Linux 2.6.18-164.2.1.el5PAE (upm) 08/15/2011


12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.00 0.00 0.02 0.08 0.00 99.90
12:20:01 AM all 0.00 0.00 0.02 0.08 0.00 99.90
12:30:01 AM all 0.00 0.00 0.01 0.06 0.00 99.92
12:40:01 AM all 0.00 0.00 0.02 0.08 0.00 99.90
12:50:01 AM all 0.00 0.00 0.02 0.07 0.00 99.91
01:00:01 AM all 0.00 0.00 0.02 0.08 0.00 99.90
01:10:01 AM all 0.00 0.00 0.02 0.08 0.00 99.90
01:20:01 AM all 0.00 0.00 0.02 0.07 0.00 99.91

פורסם
  • מחבר

sar נותן לי מידע כל 10 דקות

אני מחפש כל 5 שניות לכן אני חייב את top בתוך לולאה ולהפריד את המלל מהמספר ברשימה הנ"ל

0.7%sy

0.9%sy

1.0%sy

etc...

פורסם

כנראה לא הצורה הכי יעילה לעשות את זה סתם מה שעלה לי


top -b -n1 | grep -o -E "([0-9]+\\.[0-9]+)%sy" | tr -d "%sy"

זה יתן לך ישר את המספר.

פורסם

בהנחה שאתה משתמש ב- Bash, הדרך הכי פשוטה שאני מכיר היא

${var1%var2}

מוחקת את הערך שנמצא בתוך var2 מהסוף של var1.

למשל:

teststr="this is a test"
remove=test
echo ${teststr%remove}

יחזיר this is a.

פורסם
:xyxthumbs:

ארכיון

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

דיונים חדשים