如何使用grep输出以数字1开头并同时包含字符串的行。
1 A ATC
1 ATT T
1 ATG 8
2 ATC 1
例如,在这里我需要以1开头并包含ATC的行 我希望grep列出1个ATC。
请注意,我不需要同时具有1和ATC的行,而是需要它们以1开头并且在同一行上具有ATC
答案 0 :(得分:0)
如果您要查找以“ 1”开头且包含“ ATC”的行,则可能最简单:
grep '^1.*ATC'
答案 1 :(得分:0)
您可以使用以下任何grep
命令:
grep '^1 .*ATC' <<< "$s"
grep '^1\b.*ATC' <<< "$s"
grep '^1\>.*ATC' <<< "$s"
grep -E '^1([^0-9].*)?ATC' <<< "$s"
请参见online demo
详细信息
^1 .*ATC
匹配以1
开头的行(请参阅^1
,其中^
是行的开头),然后是一个空格(用{{1}替换}匹配1个或更多水平空白[[:blank:]][[:blank:]]*
ATC` ), then any 0+ chars followed with
及其等效的^1\b.*ATC
在行首匹配^1\>.*ATC
,然后检查单词边界位置,然后跟在1
之后的任何0+字符匹配ATC
有点高级:^1([^0-9].*)?ATC
在行的开头匹配,然后匹配可选序列:任何非数字字符(1
),然后是任何0个以上的字符。然后,[^0-9]
将被匹配。此解决方案允许进行ATC
匹配。答案 2 :(得分:0)
grep是错误的工具。如果要进行算术运算(检查列的整数值而不是文本表示形式),则需要awk
:
awk '$1 == 1 && /ATC/' input-file