expr
ファイル内の数字を増やすために使用しています。
これはうまくいきますが:
NUM=$(expr $(grep customer file.txt | cut -f4 -d' ' | sort -n | tail -n 1) + 1)
expr
これがすべてのシェルで利用可能かどうかはわかりません。
しかし、以下はうまくいきません。
NUM=$((grep customer file.txt | cut -f4 -d' ' | sort -n | tail -n 1) + 1))
それでは、すべてのシェルで動作するように追加する方法はありますか?
答え1
4列の単語を含む行の最大数を見つけ、customer
ここに1を加えて割り当てようとしていますNUM
。
NUM=$( awk '/customer/ && $4 > n { n = $4 } END { print n + 1 }' file.txt )
expr
すべてのPOSIXシェルで動作します(実際に使用しているLinuxディストリビューションには依存しません)。
だからそうだろう
NUM=$(( $( grep ... ) + 1 ))
しかし、あなたは使用します
NUM=$(( grep ... ) + 1 ))
ブラケットが不均衡です。
しかし、私はより単純なawk
バリエーションを使用します。