从行开始bash中删除整数

从行开始bash中删除整数,bash,grep,Bash,Grep,我有一些关于“.txt”处理的作业。 我试图在行的开头按精确的整数进行grep: grep -hw ^$grep_id .... 而grep_id正是我需要的整数 但它给出了错误的结果,例如,如果我有文件“.txt”,如下所示: 2 21 30 如果放大2,我得到: 2 21 有什么办法吗?此正则表达式将只匹配给定的$grep\u id(使用任何非数字字符作为结束分隔符): 我成功地使用了: grep "^${grep_id}\([^0-9]\|$\)" 我不知道为什么,但是grep-h

我有一些关于“.txt”处理的作业。 我试图在行的开头按精确的整数进行grep:

grep -hw ^$grep_id ....
而grep_id正是我需要的整数

但它给出了错误的结果,例如,如果我有文件“.txt”,如下所示:

2
21
30
如果放大2,我得到:

2
21

有什么办法吗?

此正则表达式将只匹配给定的
$grep\u id
(使用任何非数字字符作为结束分隔符):

我成功地使用了:

grep "^${grep_id}\([^0-9]\|$\)"

我不知道为什么,但是grep-hw^2./1.txt对我来说工作正常,返回2,没有21-w做了它的工作。如果没有-2,它会给出2和21,就像给我的命令一样。您是否检查过grep_id正是您想要的数字,没有尾随字符?如果没有成功,我建议检查
grep
/coreutils安装的健全性——例如,你确定它运行的是正确的grep,而不是像BusyBox grep这样的精简版本吗?谢谢,伙计,我的输入有另一个问题,它工作正常
grep "^${grep_id}\([^0-9]\|$\)"