batch récupére variable dans un texte - Shell/Batch - Programmation
Marsh Posté le 17-04-2009 à 09:15:02
Hello
Sous Windows, Unix ?
Marsh Posté le 17-04-2009 à 18:13:58
une possibilité :
Citation : for /f %a in ('grep -o "[0-9]\{2\}\.[0-9]\{3\}\.[0-9]\{2\}\.[0-9]\{3\}" fichier.txt') do set var=%%a |
Marsh Posté le 17-04-2009 à 20:39:44
ca marche pas
grep -o option invalid
au pire comment récupérer toute la ligne dans une variable?
Marsh Posté le 17-04-2009 à 20:49:14
Code :
|
Comment ça "option invalid" ?
Code :
|
tu utilises quelle version de grep ?
Marsh Posté le 17-04-2009 à 23:19:32
comment voir la version?
C:\>grep --help
Usage: grep [OPTION]... PATTERN [FILE] ...
Search for PATTERN in each FILE or standard input.
Example: grep -i 'hello world' menu.h main.c
Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings
-G, --basic-regexp PATTERN is a basic regular expression
-e, --regexp=PATTERN use PATTERN as a regular expression
-f, --file=FILE obtain PATTERN from FILE
-i, --ignore-case ignore case distinctions
-w, --word-regexp force PATTERN to match only whole words
-x, --line-regexp force PATTERN to match only whole lines
-z, --null-data a data line ends in 0 byte, not newline
Miscellaneous:
-s, --no-messages suppress error messages
-v, --invert-match select non-matching lines
-V, --version print version information and exit
--help display this help and exit
--mmap use memory-mapped input if possible
Output control:
-b, --byte-offset print the byte offset with output lines
-n, --line-number print line number with output lines
-H, --with-filename print the filename for each match
-h, --no-filename suppress the prefixing filename on output
-q, --quiet, --silent suppress all normal output
--binary-files=TYPE assume that binary files are TYPE
TYPE is 'binary', 'text', or 'without-match'.
-a, --text equivalent to --binary-files=text
-I equivalent to --binary-files=without-match
-d, --directories=ACTION how to handle directories
ACTION is 'read', 'recurse', or 'skip'.
-r, --recursive equivalent to --directories=recurse.
-L, --files-without-match only print FILE names containing no match
-l, --files-with-matches only print FILE names containing matches
-c, --count only print a count of matching lines per FILE
-Z, --null print 0 byte after FILE name
Context control:
-B, --before-context=NUM print NUM lines of leading context
-A, --after-context=NUM print NUM lines of trailing context
-C, --context[=NUM] print NUM (default 2) lines of output context
unless overridden by -A or -B
-NUM same as --context=NUM
-U, --binary do not strip CR characters at EOL (MSDOS)
-u, --unix-byte-offsets report offsets as if CRs were not there (MSDOS)
`egrep' means `grep -E'. `fgrep' means `grep -F'.
With no FILE, or when FILE is -, read standard input. If less than
two FILEs given, assume -h. Exit status is 0 if match, 1 if no match,
and 2 if trouble.
Report bugs to <bug-gnu-utils@gnu.org>.
C:\>
Marsh Posté le 17-04-2009 à 23:43:00
pour connaitre la version c'est écrit dans le manuel
Code :
|
moi j'utilise celle-ci sous windows http://downloads.sourceforge.net/g [...] .4-bin.zip (avec bien sur les dépendances http://downloads.sourceforge.net/g [...] .4-dep.zip )
l'option -o est bien pratique pour encadrer strictement le motif recherché
Marsh Posté le 18-04-2009 à 00:25:16
C:\>grep -V
grep (GNU grep) 2.4.2
Copyright 1988, 1992-1999, 2000 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\>
Marsh Posté le 18-04-2009 à 00:35:13
J ai installer nouvelle version
la fenetre se ferme
meme avec un pause
Marsh Posté le 18-04-2009 à 00:36:06
Utilise la version que je t'ai indiqué, elle est plus récente (GNU grep 2.5.4)
edit > tu as les dépendances avec ?
Marsh Posté le 18-04-2009 à 01:47:22
j ai ajouté un % la fenetre ne ferme pu mais me donne ceci
C:\>for /F %a in ('grep -o "[0-9]\{2\}\.[0-9]\{3\}\.[0-9]\{2\}\.[0-9]\{3\}"c:\ipconfig.txt') do set
var=%a
grep: (standard input): Not enough space
C:\>pause
Appuyez sur une touche pour continuer...
Marsh Posté le 18-04-2009 à 19:00:41
En effet ca marche a merveille.
merci beaucoup.
t'est un vrai "pro"
Résolu
Marsh Posté le 17-04-2009 à 04:33:00
Bonjour, jaimerais faire un batch qui récupèrer dans une variable l'ip suivante "24.212.82.222" comment faire?
tout ce texte est sur une seule ligne dans mon fichier .txt
merci de votre aide.
<P ALIGN="center"><FONT size=8><BR>IP : 24.212.82.222<br></font><font size=3><i>cnq82-222.cablevision.qc.ca</i><br></font><font size=1><br><br>Pas de proxy détecté - No Proxy detected</font></html>