首页 > 解决方案 > 如何从两个不同分隔符之间的线中提取字符串?

问题描述

我需要提取两个分隔符之间的字符串,例如“>”和“<”,例如:atatata> hello world <agagccac. 我需要存储在单个变量中的 hello world 字符串,可能不是 a[0] 中的 hello 和 a[1] 中的 world。感谢您的帮助!

标签: bashshell

解决方案


假设 VAR 有您所需的字符串:那么您可以获得所需的值:

echo $VAR | cut -d '>' -f 2 | cut -d '<' -f 1

这个怎么运作:

供参考:

切割:

  • -d 指定分隔符
  • -f 指定字段
echo $VAR
atatata> hello world < agagccac
  1. 使用 cut 获取第一个分隔符之后的值:
VAR1=$(echo $VAR | cut -d '>' -f 2)
echo $VAR1
 hello world < agagccac
  1. 再次使用 cut 获取结束分隔符之前的值
VAR2=$(echo $VAR1 | cut -d '<' -f 1)
echo $VAR2
 hello world
  1. 将结果存储在某个变量中:
RES=$(echo $VAR | cut -d '>' -f 2 | cut -d '<' -f 1)
echo $RES
 hello world

推荐阅读