Shell gt比較ファイル行

Shell gt比較ファイル行

ファイルに2行以上があることを確認しようとしています。次のスクリプトを作成しました。

  (wc -l myfile | cut -c  1) -gt 2

しかし、エラーが発生します。予想フラグ "-gt"の近くに構文エラーがあります。どんなアイデアがありますか?

答え1

ファイルに3行以上が含まれているかどうかをテストするには:

if [ "$( wc -l <file )" -gt 2 ]; then echo 'more than two lines'; fi

あなたは$前のものを見逃したし(...)、それも逃したif [ ... ]$( ... )コマンドの出力で何かをしようとしているので、コマンドの置き換えが必要です。

一部の人々は次の構文を好む。

test "$( wc -l <file )" -gt 2 && echo 'more than two lines'

そうでなければ

[ "$( wc -l <file )" -gt 2 ] && echo 'more than two lines'

ファイルを標準入力に入力してwc問題を回避しますcut

関連情報