$ cat isbndb.sample | wc -l
13
$ var=$(cat isbndb.sample); echo $var | wc -l
1
왜 문자열을 변수에 할당 할 때 줄 바꿈 문자가 누락됩니까? 개행 문자가 공백으로 변환되지 않게하려면 어떻게해야합니까?변수 보간 중 배쉬 라인 연결
저는 bash를 사용하고 있습니다.
$ cat isbndb.sample | wc -l
13
$ var=$(cat isbndb.sample); echo $var | wc -l
1
왜 문자열을 변수에 할당 할 때 줄 바꿈 문자가 누락됩니까? 개행 문자가 공백으로 변환되지 않게하려면 어떻게해야합니까?변수 보간 중 배쉬 라인 연결
저는 bash를 사용하고 있습니다.
개행을 보존하려면 변수를 인용해야합니다.
$ var=$(cat isbndb.sample); echo "$var" | wc -l
그리고 cat
는 두 경우 모두 불필요 :
$ wc -l < isbndb.sample
$ var=$(< isbndb.sample); echo "$var" | wc -l
편집 :이 변수에 그 내용을 할당 할 때
배쉬는 일반적으로 파일에서 추가 후행 줄 바꿈을 제거합니다. 당신은 그들을 보존하기 위해 몇 가지 트릭을 사용해야합니다. 이 시도 :
null로IFS
설정
IFS='' read -d '' var < isbndb.sample; echo "$var" | wc -l
는 줄 바꿈에 분할되는 그것은 파일의 끝 때까지 파일을 받아 들일 수 null로 read
의 구분 기호를 설정에서 파일을 방지 할 수 있습니다.
$ var = $ (cat isbndb.sample); echo "$ var"| wc -l. 출력은 12이고 한 줄 누락 된 이유는 무엇입니까? 내 프로그램에서 실제로 다른 cmd의 출력이기 때문에 cat을 사용하여 파일에서 읽습니다. – turtledove
내 마지막 빈 줄이 생략 된 것처럼 보입니다. 이 문제를 해결하는 방법? 감사합니다 – turtledove
@ user408393 : 내 편집을 참조하십시오. –