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

grep whole line if character on position 1 and stings found in line

您好,我正在尝试结合多个条件从文件中 grep 一行。

例如

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
.
.

仅当位置 1 上的 "B" 和第一个“,”之后的字符串 "B1TEST" 以及第二个“,”之后的字符串 "dir3" 时,我才想将这些行输出到文件中"," 存在。

grep 可以吗?还是有 "better" 命令?

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

谢谢

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

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

它会给你输出:

BSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
BSTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4
BSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4