【问题标题】:How to store only line matching grep to a variable如何仅将行匹配的 grep 存储到变量中
【发布时间】:2018-01-10 09:21:33
【问题描述】:

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

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

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

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

但是,这也会输出短语 x。

2:LN2

如何抑制这种情况,只获取行号,然后按照我希望的格式输出行的内容?

【问题讨论】:

  • 请记住,您正在读取变量x,但将文字字符串x 传递给grep。应该是$x
  • 好电话。我在写示例时忘记了这一点。
  • @Inian 我认为正确的答案是你的评论和我的答案的结合。

标签: bash unix grep


【解决方案1】:

您可以通过管道cut -f1 -d: 仅获取号码:

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

运行man cut 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多