Когда я использую команду grep следующим образом:

rollno=4
grep $rollno=4 new.txt

он возвращает записи, которые содержат 44 или 4444 или 24, и т. д. как номер рулона.Как мне устранить этот недостаток?

4 ответа4

4

Если у вас есть GNU grep , то grep -w 4 будет искать «слова», состоящие только из цифры 4.

grep -w 4 <<eof
This line contains 4 all alone.
This line doesn't because of this 44.
This line contains '4' all alone too.
This line does not because 4x4 looks like a word.
eof
0

Если ваш файл содержит одну запись в строке, вы можете использовать

grep -E "^4$"

Опция -E указывает grep принимать регулярные выражения, а в выражении ^ обозначает "начало строки", а $ обозначает "конец строки".

0

проверьте эту ссылку: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html используйте «^», если он не начинается с «номера ролла»

0

Проверьте, что 4 один:

$ echo "4 24 4aa 44 74 4 9 kk4 09 4 yu4 4 " | tr ' ' '\n' | egrep '\b4\b'
4
4
4
4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .