2013-02-28 5 views
0

J'essaie de trouver le caractère dans le fichier en utilisant find ou findstr? pour le contenu du fichier par exemple comme:trouver un caractère dans le fichier?

"/test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt, abc _test1"
«/test/abctest/ABCI. txt = c: \ abctest \ tst \ work \ workt.txt; abc .test2"
« /test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; (abc) test3"
"/test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; abc _test4"

... ainsi de suite ... Je veux trouver dans le dernier fichier abc (partie en gras). Ce fichier est très volumineux, donc je ne veux pas utiliser de boucle pour trouver du caractère. Pourriez-vous me suggérer une solution?

Merci,

+0

Vos exigences ne sont pas claires. Voulez-vous renvoyer le texte en gras de toutes les lignes? Ou voulez-vous seulement le texte en gras de la dernière ligne? Ou voulez-vous toute la dernière ligne qui contient du texte en gras? Comment savez-vous ce qui devrait être en gras? Par exemple, pourquoi les parenthèses sont-elles incluses dans la troisième ligne? – dbenham

+0

Non, si je n'avais qu'un seul type de chaîne en gras dans n'importe quel fichier du fichier, quittez. – CrazyCoder

+1

Ok, vous voulez simplement tester l'existence de texte sur n'importe quelle ligne du fichier. Mais vous n'avez toujours pas précisé quelles sont vos règles de recherche. FINDSTR possède des capacités d'expressions rationnelles primitives. Il peut probablement faire ce que vous voulez. – dbenham

Répondre

1

Je ne sais pas si cela est l'expression régulière que vous voulez, mais si tout ce que vous voulez faire est sortie si les matchs de regexp, puis

findstr /i ";[^a-z]*[a-z][a-z][a-z][^a-z]" datafile.txt >NUL && exit /b 

Ceci effectue une recherche insensible à la casse pour /;\W?\w{3}\W/ dans une notation regexp plus sensible. Si trouvé, exit /b, sinon ne rien faire.

Questions connexes