我正在使用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