在bash中从字符串中获取值

克里斯929

我希望你能帮助我。我尝试分离一个字符串:

#!/bin/bash


file=$(<sample.txt)
echo "$file"

文件本身包含如下值:

(;FF[4]GM[1]SZ[19]CA[UTF-8]SO[sometext]BC[cn]WC[ja]

我需要的是一种提取[]之间的值并将它们设置为变量的方法,例如:

$FF=4
$GM=1
$SZ=19
and so on

但是,某些文件并不包含所有值,因此在某些情况下没有FF [*]。在这种情况下,程序应使用“ 99”的值

我该怎么做?

非常感谢你的帮助。克里斯问候

控制台盒

按你的要求:

while IFS=\[ read -r A B; do
    [[ -z $B ]] && B=99
    eval "$A=\$B"
done < <(exec grep -oE '[[:alpha:]]+\[[^]]*' sample.txt)

尽管使用关联数组会更好:

declare -A VALUES

while IFS=\[ read -r A B; do
    [[ -z $B ]] && B=99
    VALUES[$A]=$B
done < <(exec grep -oE '[[:alpha:]]+\[[^]]*' sample.txt)

在那里您可以使用键("${!VALUES[@]}")和值进行访问"${VALUES['FF']}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JSON字符串中获取值

来自分类Dev

从字符串中获取值

来自分类Dev

在字符串中的特定字符后获取值

来自分类Dev

从特殊字符前后的字符串中获取值 - Jquery

来自分类Dev

从列表中获取值并插入到字符串中

来自分类Dev

从纯 MySQL 中的 JSON 字符串中获取值

来自分类Dev

在bash中使用正则表达式从字符串中获取值

来自分类Dev

如何从bash中的字符串中提取值?

来自分类Dev

如何从bash中的字符串中提取值?

来自分类Dev

如何通过匹配键从字符串中获取值?

来自分类Dev

PHP从此XML字符串中获取值

来自分类Dev

从以逗号分隔的字符串的键值对中获取值

来自分类Dev

从字符串数组列表中获取值?

来自分类Dev

从代表局部变量的字符串中获取值

来自分类Dev

如何从Android中的字符串获取值

来自分类Dev

以相反的顺序从字符串中获取值

来自分类Dev

如何使用JavaScript从字符串中获取值

来自分类Dev

在字符串PHP 5.5中获取值之间的关系

来自分类Dev

Android中的JSON字符串如何获取值

来自分类Dev

PHP从此XML字符串中获取值

来自分类Dev

从PHP中的XML字符串获取值

来自分类Dev

从oracle sql中的xml字符串获取值

来自分类Dev

使用键的值从json字符串中获取值

来自分类Dev

使用regexp从SQL字符串中获取值

来自分类Dev

从 ConfigParser 而不是字符串中获取值

来自分类Dev

从注册表项字符串中获取值

来自分类Dev

MS Access:从字符串中获取值

来自分类Dev

C# 从 Json 字符串中获取值

来自分类Dev

从解码的查询字符串中获取值