如何在 ubuntu 终端的目录中搜索两个标记之间的字符串并保存输出

How to search for a strings between two tokens in a directory in ubuntu terminal and save the output

我正在查找目录中字符串“gem '”和字符串“'”之间的所有内容。

例如:

gem 'mysql2'

在上面的示例中,我将寻找这样的输出:

mysql2

我参与过几个 rails 项目,所以从他们的 gem 文件中,我想列出到目前为止我使用过的所有 gem。

重要的是我还可以将数据输出保存在文本文件中。

你可以使用 awk:

s="gem 'mysql2'"
awk -F"'" '{print }' <<< "$s"
mysql2

要保存输出,请使用:

var=$(awk -F"'" '{print }' <<< "$s")

解释:

  • -F"'" - 使用 ' 作为字段分隔符
  • print 打印第二个字段,即单引号内的字符串

同样的事情使用 grep -oP:

grep -oP "'\K[^']+" <<< "$s"
mysql2

除了另一个答案,还有另一种方法可以提取两个单引号之间的字符串。

echo "gem 'mysql2'"|cut -d"'" -f2

解释如下,

cut -d"'" -f2

cut 命令将使用分隔符 '.

从文本 gem 'mysql2' 中找到第二个字段

输出将完全如下,

mysql2

这是我试过的,