使用grep / sed / awk从字符串中提取单词

man

我有一个弦

00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256

并要提取的词qa后面-Dspring.profiles.active

我将字符串保存在文件text.txt中只是为了对其进行演示。

当我做

grep -r -o "spring.profiles.active=" text.txt

结果是 spring.profiles.active=

这个词并不总是存在的qa,它可能是proddev

我想做的就是找到单词spring.profiles.active然后将其=提取出来。

我想使用shell脚本,因为我使用这个来配置服务器上的其他项目。

这可能吗,如果可以,我该怎么做。

血红素

您可以grep与PCRE(-P)一起使用:

grep -Po 'spring.profiles.active=\K[^ ]+' <<<'.....string.....'
  • spring.profiles.active=将从字面上匹配此子字符串,\K将放弃匹配

  • [^ ]+将选择所需的部分,即之后的部分spring.profiles.active=,直到下一个空格

对于文件:

grep -Po 'spring.profiles.active=\K[^ ]+' file.txt

例子:

% grep -Po 'spring.profiles.active=\K[^ ]+' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256'
qa

sed 将采取类似的逻辑:

sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'.....string.....'

例子:

% sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256'
qa

处理错误:

在脚本中,您可能需要处理不匹配的情况,换句话说,原始字符串不包含spring.profiles.active=在上面的sed示例中,您获得了整个原始字符串,这可能会产生问题:

% var="$(sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256')"
% echo $var
00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256

如果您希望在没有匹配项的情况下获取空字符串,请将该-n选项添加sed命令,并将该选项添加psed s命令,如下所示:

% var="$(sed -rn 's/.*spring.profiles.active=([^ ]+).*/\1/p' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256')"
% echo $var

% var="$(sed -rn 's/.*spring.profiles.active=([^ ]+).*/\1/p' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256')"
% echo $var
qa

然后,您可以测试$ var是否为空。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用grep / sed / awk从字符串中提取单词

来自分类Dev

使用AWK / SED从多个字符串中提取单词

来自分类Dev

需要sed awk或grep输出以提取字符串

来自分类Dev

使用grep / sed / awk提取与某些字段相对应的字符串

来自分类Dev

使用grep,awk或sed解析字符串

来自分类Dev

如何使用sed grep awk删除双字符串

来自分类Dev

使用sed或grep编辑字符串

来自分类Dev

使用 grep/sed 从 XML 文件中提取单词

来自分类Dev

使用sed从字符串中提取多个子字符串

来自分类Dev

使用 sed 从字符串中提取子字符串

来自分类Dev

使用 sed/grep/awk 从流中提取数字

来自分类Dev

从字符串到bashscript提取确切的模式(sed / awk / grep?)

来自分类Dev

如何使用 sed/awk/grep

来自分类Dev

使用Sed或Awk替换字符串

来自分类Dev

使用sed从文件中提取ascii十六进制字符串

来自分类Dev

如何使用sed从字符串中提取多个文本和数字?

来自分类Dev

如何使用sed从逗号分隔的字符串中提取数字?

来自分类Dev

使用sed从配置文件中提取某些字符串

来自分类Dev

使用wget和sed从html标题中提取字符串

来自分类Dev

如何使用带有curl命令的sed命令从Web URL中提取特定的字符串

来自分类Dev

使用sed或grep根据正则表达式提取子字符串

来自分类Dev

使用 Grep -o 或 Sed/Awk 从字符串中间抓取片段

来自分类Dev

sed / awk / grep查找分号之间的字符串

来自分类Dev

awk(或 sed/grep)获取子字符串的出现次数

来自分类Dev

如何使用sed(或bash / perl / awk)提取子字符串并将其写入新列?

来自分类Dev

使用grep和sed替换字符串

来自分类Dev

使用 sed 或 grep 获取 number 和 . 仅从字符串

来自分类Dev

如何使用sed,awk或grep从文件中找到匹配的字符串之后的特定字符串

来自分类Dev

使用sed从文件中提取单词

Related 相关文章

  1. 1

    使用grep / sed / awk从字符串中提取单词

  2. 2

    使用AWK / SED从多个字符串中提取单词

  3. 3

    需要sed awk或grep输出以提取字符串

  4. 4

    使用grep / sed / awk提取与某些字段相对应的字符串

  5. 5

    使用grep,awk或sed解析字符串

  6. 6

    如何使用sed grep awk删除双字符串

  7. 7

    使用sed或grep编辑字符串

  8. 8

    使用 grep/sed 从 XML 文件中提取单词

  9. 9

    使用sed从字符串中提取多个子字符串

  10. 10

    使用 sed 从字符串中提取子字符串

  11. 11

    使用 sed/grep/awk 从流中提取数字

  12. 12

    从字符串到bashscript提取确切的模式(sed / awk / grep?)

  13. 13

    如何使用 sed/awk/grep

  14. 14

    使用Sed或Awk替换字符串

  15. 15

    使用sed从文件中提取ascii十六进制字符串

  16. 16

    如何使用sed从字符串中提取多个文本和数字?

  17. 17

    如何使用sed从逗号分隔的字符串中提取数字?

  18. 18

    使用sed从配置文件中提取某些字符串

  19. 19

    使用wget和sed从html标题中提取字符串

  20. 20

    如何使用带有curl命令的sed命令从Web URL中提取特定的字符串

  21. 21

    使用sed或grep根据正则表达式提取子字符串

  22. 22

    使用 Grep -o 或 Sed/Awk 从字符串中间抓取片段

  23. 23

    sed / awk / grep查找分号之间的字符串

  24. 24

    awk(或 sed/grep)获取子字符串的出现次数

  25. 25

    如何使用sed(或bash / perl / awk)提取子字符串并将其写入新列?

  26. 26

    使用grep和sed替换字符串

  27. 27

    使用 sed 或 grep 获取 number 和 . 仅从字符串

  28. 28

    如何使用sed,awk或grep从文件中找到匹配的字符串之后的特定字符串

  29. 29

    使用sed从文件中提取单词

热门标签

归档