如果位置1上的字符和行中找到的字符,则grep整行

时间:2016-08-29 14:11:36

标签: linux string grep position character

您好我正在尝试将多个条件组合起来从文件中获取一行。

例如

ASTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
ASTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
ASTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
BSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
BSTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
BSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
CSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
CSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
CSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
.
.

我想将这些行输出到文件中,如果" B"在位置1和字符串" B1TEST"在第一次"之后,"和字符串" dir3"在第二个"之后,"存在。

grep有可能吗?或者是否有更好的"命令?

我找不到类似的东西......

谢谢

1 个答案:

答案 0 :(得分:0)

如果您的输入是基于列的,则可以考虑使用awk。但是,对于此要求,以下grep行应该有所帮助:

$(this).attr('id').substr("viewer_m".length); 

它会给你输出:

grep '^B[^,]*,B1TEST[^,]*,.*/dir3/' file