【问题标题】:How can I print out all lines of a file containing a specific String in unix如何在unix中打印出包含特定字符串的文件的所有行
【发布时间】:2014-11-05 08:05:42
【问题描述】:

我知道如何打印出第一次出现的字符串,但我不确定如何打印出所有出现的字符串。要打印出我使用的第一次出现的字符串

grep ",1," my_course.

我觉得打印出所有出现的情况看起来像:

    while(file has next line)
         grep ",1," my_course

虽然我不确定如何执行此 while 循环。如何测试文件是否有下一行。

编辑:对不起,我认为 grep 只匹配第一次出现。当我运行它时,它只匹配 1 行。我不知道只有 1 行匹配

另外,如果有人想回答,额外的问题......如果我的文件(my_course)中的所有行看起来像“数字,姓名,学分,等级”我将如何获得文件中的所有成绩并存储到一个数组?

【问题讨论】:

  • 您显示的grep 命令会打印出文件中每个出现的,1,。只打印第一次出现需要一个额外的选项(检查你的机器上的man grep;GNU grep 有它,但不是所有版本的grep 都是 GNU grep)。最后一个问题可能最好使用awksed 来回答,尽管GNU grep(再次)有一个可以提供帮助的选项。

标签: bash unix


【解决方案1】:

grep 已经打印出所有匹配项。

来自grep的man pages

grep, egrep, fgrep - 打印 lines 匹配模式

【讨论】:

  • 哦哇哈哈..我想我的文件中真的只有一个匹配项。我的错。我以为它只打印了第一次出现
猜你喜欢
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 2013-07-12
  • 2023-04-03
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2017-09-24
相关资源
最近更新 更多