在文本文件中搜索字符串并返回匹配模式

时间:2019-05-31 15:42:15

标签: linux shell

我有一个简单的文本文件问题。 我需要列出一个包含特定字符的字符串并将其发送到文件中,比如说“ sql”。 我使用过grep,但问题是“ grep”返回整行, 下面举一个例子。我不会从真实文件中粘贴内容,因为该行包含3000个字符,我想是因为我没有计算它们。

但是下面是一个简短的示例,其想法是仅返回与关键字“ sql”匹配的行

谢谢您能提供帮助

在我使用的代码下面:

grep -Rw "sql" sql.lst

> /abc/test/01GFG.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjfhdgfskhhjljljljljlkjljljljklj
> /abc/test/02H.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjhghjggjgjgjgjgjgjg
 > /abc/test/03ABY.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjhkhhkljljdjdgjdkjhfjlflfkljfljflkjf

我需要将以下结果返回到文件中:

  /abc/test/01GFG.sql
  /abc/test/02H.sql
  /abc/test/03ABY.sql

如果能提供帮助,请先谢谢您

1 个答案:

答案 0 :(得分:0)

grep之后,您可以使用“ cut”命令优化结果:

echo "/abc/test/01GFG.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjfhdgfskhhjljljljljlkjljljljklj
/abc/test/02H.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjhghjggjgjgjgjgjgjg
 /abc/test/03ABY.sql:/ryryutuyttuy-gjgjhhfhgdy- 
cghdgfdgfsgsgghfjhkhhkljljdjdgjdkjhfjlflfkljfljflkjf" | grep "sql" | cut -f 1 -d:

欢呼