linux - 使用 bash 从文本中获取特定字符串

标签 linux bash unix clearcase

我的输出看起来像这样:

Tag: abrodov_linux_vlsi07_test1
  Global path: /net/vposeidon02/vlsifs/vlsi02/vlsi_ccstore/07/abrodov/abrodov_linux_vlsi07_test1.vws
  Server host: ta1vlsi07
  Region: tlv_unix
  Active: YES
  View tag uuid:26075e8c.4e2e11e4.9cc0.a4:ba:db:3c:fc:0e
View on host: ta1vlsi07
View server access path: /net/vposeidon02/vlsifs/vlsi02/vlsi_ccstore/07/abrodov/abrodov_linux_vlsi07_test1.vws
View uuid: 26075e8c.4e2e11e4.9cc0.a4:ba:db:3c:fc:0e
View owner: abrodov

我需要获取本例中的服务器主机 ta1vlsi07

我写了一些有用的命令来获取 View uuid,但在这种情况下它不起作用,这里是命令:

ct lsview -l abrodov_linux_vlsi07_test1 |grep -i 'Server host:' | cut -d" " -f3

我得到的输出是 Server 而不是主机名。

最佳答案

如果它支持 -P 参数,您可以在单个 grep 命令中执行此操作。

ct lsview -l abrodov_linux_vlsi07_test1 | grep -oP 'Server host:\s*\K\S+'

解释:

  • Server host: 匹配字符串 Server host:
  • \s* 匹配零个或多个空格。
  • \K 放弃打印之前匹配的字符。所以在我们的例子中 Server host: 加上以下空格被丢弃了。
  • \S+ 现在将匹配并打印出以下一个或多个非空格字符。

关于linux - 使用 bash 从文本中获取特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26334670/

相关文章:

linux - Azure Linux VM(资源管理器)上的“端点”选项卡?

c++ - 在 OpenGL C++ 中同时使用 glOrtho 和 gluPerspective

Bash 在变量中存储命令 PID 并终止进程

bash - 将区间表达式与 bash 扩展的 globbing 结合使用

user-interface - 编写基于 SVG 的桌面应用程序有哪些选择?

linux - 运行非常简单的 shell 脚本时出现语法错误

linux - 为什么使用 getrusage() 测量的已用用户时间不接近完全一致?

c - fork 过程的输出

linux - 在 bash 脚本中回显变量时的 SIGPIPE

unix - 为什么如果在 passwd 上设置了 suid 位,普通用户无法更改其他人的密码