![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Använda grep extrahera radnumret | mskarica | Shell-programmering och Skript | 8 | 06-26-2008 03:47 |
| Hur man grep / zgrep att produktionen endast matchningsreglerna filnamnet och radnumret? | vvaidyan | UNIX for Dummies Frågor & Svar | 3 | 03-12-2008 05:33 |
| grep strängen med radnumret | salaathi | Shell-programmering och Skript | 4 | 12-04-2007 11:42 |
| Få Filnamn och Radnummer använder grep | ceemh3 | UNIX for Dummies Frågor & Svar | 4 | 09-17-2007 11:35 |
| finns det någon anledningen att få antalet linje grep resultatet? | umen | UNIX for Dummies Frågor & Svar | 1 | 03-16-2006 09:56 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Grep ett nummer från en rad i ksh
I file.name har jag en rad som lyder
$ Idir / imgen-usemonths-dropcheck-monitor-sizelimit 80000000-intervallet 120-volcal HSI Hur kan jag få storleksgränsen, dvs 80000000 ut och skicka det till en variabel som kallas STORLEK? Tack. Jag försökte echo "grep sizelimit file.name" | sed -n-e 's / ^. sizelimit \ ([0-9] * \)-intervallet .* $ / \ 1 / p' men det utgång ingenting. |
|
||||
|
Så nära ...
Kod:
SIZE=`grep sizelimit myfile | sed 's/^.*sizelimit //' | awk '{print $1}'`
Det finns andra alternativ som innebär att analysera linjen (antingen i awk eller skal), som: Kod:
SIZE=0
grep sizelimit myfile | while read s
do
set -- $s
while [ $# -gt 0 ]
do
case $1 in
-sizelimit) SIZE=$2; break;;
*) shift;;
esac
done
done
|
|
||||
|
Citat:
Det första alternativet fungerar bra. Menade du det fungerar även om "-sizelimit 80000000" flyttas någon annanstans i raden också? |
|
||||
|
Citat:
Vad det egentligen gör är att kotletter allt från början av linjen fram till och med ordet sizelimit och utrymmet efter, och sedan tar det första ordet i övrigt (vilket är värdet av sizelimit). |