如何仅将匹配grep的行存储到变量中

时间:2018-01-10 09:21:34

标签: bash unix grep

假设我有一个包含此文字的文件:

FName;LName;PhNm;FxNm;Eml
FN2;LN2;PN2;FN2;E2

我将查询的短语存储在变量x中,并且我使用grep -n来查找行号并将其存储在另一个变量y中,以便然后输出找到的行的内容。 E.g:

#!/bin/bash
read x
y=$(grep -n "$x" test.txt)
echo "$y"

然而,这也输出短语x。

2:LN2

我如何抑制它,只获取行号,然后输出行的内容,因为我希望格式化它们?

1 个答案:

答案 0 :(得分:2)

您可以管道cut -f1 -d:只获取数字:

y=$(grep -n "x" test.txt | cut -f1 -d:)

运行man cut以了解详情。