
#!/bin/bash
/abc/qwerty/AAAooo/testing/CBA_Car/Config/Test_Ctr.env
OUTPUT_FILE_NAME=$1
DATE=$2
cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}
이 스크립트에서 카운트를 수행하고 카운트만 출력하려면 어떻게 해야 합니까? 어떻게든 이 셸 스크립트의 줄 수를 계산하고 개수 값을 출력할 수 있어야 합니다. 내 생각에는 다음과 같은 작업을 수행해야 할 수도 있습니다.
cat filename.txt | wc -l
그러나 구문이 올바르게 작동하도록 올바르게 입력하는 방법을 잘 모르겠습니다. 계속해서 오류가 발생합니다. 다음 줄에서 계산을 수행해야 합니다.
cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}
답변1
cp
(보통) 아무것도 출력하지 않습니다. 를 사용하면 cp -v
복사되는 각 파일의 이름이 출력되지만 내용은 출력되지 않습니다.
UNIX와 유사한 환경은 정확히 하나의 작업을 수행하는 도구를 사용하는 데 매우 능숙하고 이를 잘 수행하는 경우가 많습니다. 파일의 줄 수 계산(작업 wc
)은 파일을 한 위치에서 다른 위치로 복사하는 도구의 범위 내에 있지 않습니다(예:) cp
.
파일의 줄 수를 세고 복사하려면 이 두 가지 작업을 별도로 수행해야 합니다.
$ cp /old/path/to/file /new/path/to/file
$ filelength="$( wc -l < /path/to/file )"
답변2
다음 방법으로 하면 됩니다
#!/bin/bash
cp $1 $2
wc -l $2
위 스크립트는 $1(file1)의 내용을 $2(file2)에 복사한 다음 두 번째 파일에 복사합니다. file2의 줄 수를 인쇄합니다.
다음 스크립트를 실행해야 합니다.
sh scriptname file1 file2
$1=file1
$2=file2