如何在 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
这是我试过的,
我正在查找目录中字符串“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
这是我试过的,