입력은 다음 형식으로 제공됩니다.
ksh -x count.sh filename `cat filepath/filename | wc -l
여기서 문제는 두 번째 매개변수 cat을 다른 변수에 전달하고 실행해야 한다는 것입니다 expr -1
.
내 요구 사항은 명령 자체의 개수를 계산하여 스크립트에 전달해야 한다는 것입니다.
실제로 계산되는 총 레코드 수는 1보다 작아야 합니다. 헤더 레코드도 삭제해야 합니다.
답변1
파일의 총 레코드 수를 하나씩 줄이는 가장 간단한 방법은 다음과 같습니다 awk
.
awk 'END { print NR - 1 }' filename
NR
NR
이것은 지금까지 읽은 레코드 수를 보유하는 내부 변수인 음수 값을 인쇄합니다 . 이는 입력이 끝날 때 수행되며 파일의 총 레코드 수에서 1을 뺀 값이 제공됩니다.
그러면 명령은 다음과 같이 작성될 수 있습니다.
ksh -x count.sh filename "$( awk 'END { print NR - 1 }' filename )"