bash - 如何从两个不同分隔符之间的线中提取字符串?
问题描述
我需要提取两个分隔符之间的字符串,例如“>”和“<”,例如:atatata> hello world <agagccac. 我需要存储在单个变量中的 hello world 字符串,可能不是 a[0] 中的 hello 和 a[1] 中的 world。感谢您的帮助!
解决方案
假设 VAR 有您所需的字符串:那么您可以获得所需的值:
echo $VAR | cut -d '>' -f 2 | cut -d '<' -f 1
这个怎么运作:
供参考:
切割:
- -d 指定分隔符
- -f 指定字段
echo $VAR
atatata> hello world < agagccac
- 使用 cut 获取第一个分隔符之后的值:
VAR1=$(echo $VAR | cut -d '>' -f 2)
echo $VAR1
hello world < agagccac
- 再次使用 cut 获取结束分隔符之前的值
VAR2=$(echo $VAR1 | cut -d '<' -f 1)
echo $VAR2
hello world
- 将结果存储在某个变量中:
RES=$(echo $VAR | cut -d '>' -f 2 | cut -d '<' -f 1)
echo $RES
hello world
推荐阅读
- php - 在 2 个大文件中查找匹配的字符串包含 4 亿行 PHP
- html - ErrorStateMatcher 验证密码 == confirmPassword 是否无法正常工作
- bash - Bash shell 脚本表达式和条件语法
- javascript - Javascript new date() 函数返回错误的日期
- vue.js - Throttle rendering of element for v-for loop in vuejs
- c# - Cannot access methods Newtonsoft.JSON .Net Core 2.*
- php - 如何在 SQL 中插入日期+id
- python - 如何在keras中使用GRU之前的时间分布?
- javascript - 提取或截断 DOM - 仅保留视口内的内容
- powershell - 我无法将脚本的 Get-Counter 部分输出到 CSV 文件中