我有这个文件:
N104 F1810
N104 F3810
N104 F810
N104 F305
和一个grep
输入脚本。
脚本:
enter input
read input
cat file | grep $input
当我输入“810”时,我得到输出:
N104 F1810
N104 F3810
N104 F810
我需要输出:
N104 F810
答案1
grep -E "(^|[^0-9])$input($|[^0-9])" < file
前面是$input
行的开头或非数字,后面是行的结尾或非数字。
答案2
您也可以grep
这样做:
$ grep "[[:alpha:]]810" sample.txt
N104 F810
更具体地说,针对您的用例:
$ input=810
$ grep "[[:alpha:]]$input" < sample.txt
N104 F810
我不知道您是否期望该grep
模式也能够处理第一列,如果可以的话,以什么能力处理。
$ input=104
$ grep "[[:alpha:]]$input" < sample.txt
N104 F1810
N104 F3810
N104 F810
N104 F305
这利用了grep
的字母字符集。不确定您的要求,但这将允许您搜索第二列中的任何尾随数字。如果您需要更强大的解决方案,您可能需要更改正则表达式。