wc -l 파일을 변수로

wc -l 파일을 변수로

파일 경로가 주어지면 줄 수를 확인하여 변수에 저장하고 싶습니다. 예를 들어:

/three_little_pigs.csv

straw
wood
bricks

3파일에 숫자(또는 문자열)를 저장하고 싶습니다 . 다음 명령을 시도했습니다.

export P="three_little_pigs.csv"
NUM_LINES=(wc -l < "${P}")

하지만 항상 다음과 같은 오류가 발생합니다.

bash: house: line 12: syntax error near unexpected token `<'

답변1

bash에서 서브쉘을 실행하려면 $(...). 그리고 입력을 리디렉션할 필요가 없으며 입력 파일의 이름을 지정하기만 하면 됩니다. 그래서 생략 <:

NUM_LINES=$(wc -l "$P")

산출:

3 three_little_pigs.csv

파일 이름을 제거하려면 awk를 사용하는 것이 한 가지 가능성입니다(다른 방법도 많이 있음).

NUM_LINES=$(wc -l "$P" | awk '{print $1}')

편집 1:

좋습니다. 리디렉션( <)을 사용하면 파일 이름이 완전히 생략됩니다...죄송합니다;)

NUM_LINES=$(wc -l < "$P")

관련 정보