파일 경로가 주어지면 줄 수를 확인하여 변수에 저장하고 싶습니다. 예를 들어:
/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")