行に日付が含まれているかどうかを if ステートメントの条件として使用しようとしています。
if [grep -n -v '[0-9][0-9][0-9][0-9]' $line |wc -l==0]
then
...
上記はエラーを返します。必ずしもgrepを使用する必要はありません。grep によって処理される行は次のようになります。
1984 Dan Marino QB Miami Dolphins
どんな助けでも大歓迎です。
if [[ $(echo $line | grep -q '[0-9][0-9][0-9][0-9]') ]]; then
# do something
fi
オプションを指定して grep を呼び出すだけで-q
、戻り値を確認できます。
if [ $(grep -qv '[0-9][0-9][0-9][0-9]' $line) -eq 0 ]; then
# ...
fi
コマンド置換と適切な bash 構文を使用してください。
[[ "`grep -n -v '[0-9][0-9][0-9][0-9]' $line | wc -l`" -eq 0 ]]