我正在使用 bash 脚本(Ubuntu 12.10)处理来自文本文件的一些数据。
基本思想是我使用 grep 从文件中选择某一行。接下来,我使用 sed 处理该行以获取数字。grep 和 sed 命令都在工作。我可以回显这个数字。
但是结果与字符串的连接出错了。
当我从变量或文件执行 grep 命令时,组合字符串时会得到不同的结果。当我 grep 文件时,连接出错。当我使用与文件中相同的文本 grep 变量时,它按预期工作。
我对文件中的 grep 做错了什么?
test.pdb 的内容
REMARK overall = 324.88
REMARK bon = 24.1918
REMARK coup = 0
我的剧本
#!/bin/bash
#Correct function
echo "Working code"
TEXT="REMARK overall = 324.88\nREMARK bon = 24.1918\nREMARK coup = 0\n"
DATA=$(echo -e $TEXT | grep 'overall' | sed -n -e "s/^.*= //p" )
echo "Data: $DATA"
DATA="$DATA;0"
echo $DATA
#Not working
echo ""
echo "Not working code"
DATA=$(grep 'overall' test.pdb | sed -n -e "s/^.*= //p")
echo "Data: $DATA"
DATA="$DATA;0"
echo $DATA
输出
Working code
Data: 324.88
324.88;0
Not working code
Data: 324.88
;04.88