使用shell脚本命令从文本中提取UUID字符串。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用shell脚本命令从文本中提取UUID字符串。相关的知识,希望对你有一定的参考价值。
我有一个文本行为。
host_id -------------------------------------- f5f4d3e7-fdc4-49f2-b32c-13280bc7db66 (1 rows)
我想用shell脚本只提取文本中的UUID值,因为我需要在ubuntu上用这个值执行一些其他命令。我试着用 cut
命令。
cut -d '-' -f2 | cut -d '(' -f1
但无法成功指定 cut
UUID字符串前后的字符。
答案
使用的问题 cut -d'-'
在您的情况下是,该字段(-f
)值,你将不得不添加的不是2,而是38及以上(这是连续的 -
符号),因为您的字符串中的 cut
工作。这是你将得到的输出,如果你只设置字段39(使用 cut -d'-' -f39
):
f5f4d3e7
但你想要的UUID字符串中还包含了额外的连字符,所以如果你还想用这种方式来获取(使用 cut
)你将不得不扩大你的字段选择,在这种情况下,通过添加 -f39-43
. 但这并不能解决后面显示字符串"(1行) "的问题,所以通过运行 cut -d'-' -f39-43
你会得到这个。
f5f4d3e7-fdc4-49f2-b32c-13280bc7db66 (1 rows)
这就是为什么你用了第二个 cut
过滤器,只选取UUID值字符串。虽然这样做是可以的,但似乎使用 awk
,它将在一个命令中解决所有这些问题。
cat file.txt | awk ' print $3 '
或者如果你的字符串不是来自于一个文件:
echo "host_id -------------------------------------- f5f4d3e7-fdc4-49f2-b32c-13280bc7db66 (1 rows)" | awk ' print $3 '
以上是关于使用shell脚本命令从文本中提取UUID字符串。的主要内容,如果未能解决你的问题,请参考以下文章