首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取文件外壳脚本时无法读取十进制值

读取文件外壳脚本时无法读取十进制值
EN

Stack Overflow用户
提问于 2015-05-01 14:08:15
回答 1查看 348关注 0票数 0

我在Unix中有一个文件,其行如下:

代码语言:javascript
复制
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850848.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY].
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850851.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY1].
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850852.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY10].
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850860.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY11].

在读取.sh文件中的文件时,回送打印如下

代码语言:javascript
复制
INFO 29-4-2015 20:22:56 NOD_VMT01-32 DIRECTOR VAR_27028 Use override value 0 for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY9].

[850852.000000000000000]变成0

代码:

代码语言:javascript
复制
#!/bin/bash
while read line
do  
if [[ $line == *"Use override value"* ]]
then
    echo $line 
    SUBSTRING=`echo $line| cut -d '[' -f 3 | cut -d ']' -f 1`
    SUBSTRING1=`echo $line| cut -d '[' -f 2 | cut -d ']' -f 1`
    echo $SUBSTRING" = "$SUBSTRING1
fi
done < $1

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-01 17:11:10

你没有引用你的"$variables"

代码语言:javascript
复制
while read line; do   
    if [[ $line == *"Use override value"* ]]; then     
        echo "$line"
        sub1=$(cut -d '[' -f 3 <<< "$line" | cut -d ']' -f 1)
        sub2=$(cut -d '[' -f 2 <<< "$line" | cut -d ']' -f 1)    
        echo "$sub1 = $sub2"
    fi
done < "$1"
代码语言:javascript
复制
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850848.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY].
$$mplt_PROCESS_KEY = 850848.000000000000000
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850851.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY1].
$$mplt_PROCESS_KEY1 = 850851.000000000000000
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850852.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY10].
$$mplt_PROCESS_KEY10 = 850852.000000000000000
INFO    29-4-2015 20:22:56  NOD_VMT01-32    DIRECTOR    VAR_27028   Use override value [850860.000000000000000] for user-defined workflow/worklet variable:[$$mplt_PROCESS_KEY11].
$$mplt_PROCESS_KEY11 = 850860.000000000000000

如果在shell提示符下执行echo [850860.000000000000000],会发生什么情况?

您的当前目录中有名为"0“的文件吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29988416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档