모든 쉘에 적용하려면 1을 더하세요.

모든 쉘에 적용하려면 1을 더하세요.

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변형을 사용하겠습니다.

관련 정보