选择字段中的特定字符串

选择字段中的特定字符串

我有这个文件:

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的字母字符集。不确定您的要求,但这将允许您搜索第二列中的任何尾随数字。如果您需要更强大的解决方案,您可能需要更改正则表达式。

参考

相关内容