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