首页 > 解决方案 > 在文本文件中搜索字符串并返回匹配模式

问题描述

我有一个文本文件的简单问题。我需要列出一个包含特定字符的字符串并将其发送到一个文件中,比如说“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

如果您能提供帮助,请提前感谢您

标签: linuxshell

解决方案


在 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:

干杯


推荐阅读