Когда я использую команду grep следующим образом:
rollno=4
grep $rollno=4 new.txt
он возвращает записи, которые содержат 44 или 4444 или 24, и т. д. как номер рулона.Как мне устранить этот недостаток?
Если у вас есть 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
Если ваш файл содержит одну запись в строке, вы можете использовать
grep -E "^4$"
Опция -E
указывает grep
принимать регулярные выражения, а в выражении ^
обозначает "начало строки", а $
обозначает "конец строки".
проверьте эту ссылку: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html используйте «^», если он не начинается с «номера ролла»
Проверьте, что 4
один:
$ echo "4 24 4aa 44 74 4 9 kk4 09 4 yu4 4 " | tr ' ' '\n' | egrep '\b4\b'
4
4
4
4