![이 줄에서 "wc -l"을 어떻게 사용할 수 있나요? 쉘 스크립트의 라인 수를 계산하고 카운트 값만 출력합니다.](https://linux55.com/image/142183/%EC%9D%B4%20%EC%A4%84%EC%97%90%EC%84%9C%20%22wc%20-l%22%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%EB%9D%BC%EC%9D%B8%20%EC%88%98%EB%A5%BC%20%EA%B3%84%EC%82%B0%ED%95%98%EA%B3%A0%20%EC%B9%B4%EC%9A%B4%ED%8A%B8%20%EA%B0%92%EB%A7%8C%20%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
#!/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