2010-03-16 15 views
0

Я пытаюсь найти какой-то поплавок номер (как -1234.5678) в огромном текстовом файле с помощью Grep, так что я думал о:Найти поплавка в текстовом файле

Grep -n «-1234,5678»

но я получаю ошибки, вы знаете, как правильно использовать grep и почему? есть что-нибудь проще?

Благодаря

ответ

2

Используйте grep -e в тех случаях, когда шаблон может начинаться с дефиса.

grep -n -e -1234.5678 
+0

Я получаю: grep: недействительный вариант - '.' – flow

+0

теперь он работает, спасибо большое – flow

+0

Соглашение с программами GNU состоит в том, что вы можете использовать '--' для указания конца опций. Это будет работать с большим количеством программ, в то время как флаг '-e' довольно специфичен для' grep'. – Cascabel

0

Если ввести это в командной строке, попробуйте

grep -n "\-1234.5678" 

избежать интерпретации 1234,5678 как флаг.

+0

что мне делать, если число приходит из переменной? Я пробую grep -n "\ $ {VARIABLE}", но он не работает – flow

+0

ОК, это была моя ошибка, я получил его, спасибо – flow

2

вы можете попробовать эти

$ cat file 
1 2 3 -1234.5678 4 5 1.4 
ass 34.55334 aslfjas 

$ awk '{for(i=1;i<=NF;i++)if($i~/^-?[0-9]+\.[0-9]+$/){print $i}}' file 
-1234.5678 
1.4 
34.55334 

$ grep -oE "\-?[0-9]+\.[0-9]+" file 
-1234.5678 
1.4 
34.55334 
+0

Извините, я имею в виду, как я могу прямо сказать в простых командах, как найти номер «-1234.5678». в вашем подходе я должен фильтровать результаты. Спасибо, в любом случае – flow

Смежные вопросы