使用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字符串。的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本7---图形化shell

Linux Shell脚本编程--cut命令

shell脚本怎么获取唯一流水号

Linux Shell脚本编程--cut命令

用于从文本文件中提取数据的 Shell 脚本

用于从文本日志文件中提取/检索值的 Shell 脚本(sqlcode 字段值)