我正在使用bash脚本(Ubuntu 12.10)从文本文件处理一些数据。连接grep输出字符串(bash脚本)
基本思想是,我使用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
使用更多引号!请参阅http://mywiki.wooledge.org/Quotes和http://wiki.bash-hackers.org/syntax/words – 2013-03-17 15:41:43