bashを使用してテキストファイルを1行ずつ読み取り、特定の行を選択してベクターに保存しようとしています。作業中のテキスト ファイルには、cURL を使用してサーバーからダウンロードするファイルの名前が含まれています。関心のある各行の前に、# 文字で始まる説明行があります。ファイルを 1 行ずつ読み込んで、# が含まれているかどうかを確認します。その行に # が含まれている場合はスキップします。# を含まない行については、その情報を使用して cURL に渡し、問題のファイルを自動的にダウンロードできるようにします。これまでのところ、次のコードを使用して行ごとに読み取ることができます。
#! /bin/bash
while read line; do
echo $line
done <file.txt
以下を試してみましたが、うまくいきません。
#! /bin/bash
while read line; do
if [[ "$line" =~ \#*]]
then
echo $line
fi
done <file.txt
次のエラーが表示されます。
./script.sh: line 4: syntax error in conditional expression
./script.sh: line 5: syntax error near `then'
./script.sh: line 5: ` then '
OS X 10.8.2 (x86_64-apple-darwin12) に GNU bash 3.2.48(1) を使用しています。
この質問が他の場所で聞かれるのを見たことがあります。ただし、何らかの理由で私のマシンでは動作しません。