문제

var

에 포함 된 파일을 통해 패턴을 검색하려면 GREP를 사용하고 있습니다.

코드 여기 :

result=`grep "$pattern" $file`
echo $result
.

결과 : a) Somewords b) 소템 C) 소핌

인쇄 결과 1 줄.나는 결과를 라인에 넣고 싶습니다

처럼 :

A) somewords
B) somelines
C) somenumbers
.

어떻게 할 수 있습니까?

감사합니다

도움이 되었습니까?

해결책

$result 변수를 인용하면 뉴라인이 보존됩니다.

result=$(grep "$pattern" $file)
echo "$result"
.

이 작품이 이유는 Bash에서 큰 따옴표로 뭔가를 묶을 때, 그 따옴표 안의 모든 것이 하나의 단어로 취급됩니다.즉, 워드 분할 .참조 : http://mywiki.wooledge.org/wordsplitting

효과적으로 $result를 사용할 때이 (개발자가 구분 기호로 취급되기 때문에)

에 의해 확장됩니다.
echo A) somewords B) somelines C) somenumbers
.

"$result"를 사용하고 분할 단어를 피하면 다음으로 확장됩니다.

echo "A) somewords
B) somelines
C) somenumbers"
.

추가 참고 : Backticks 대신 $(...)를 사용하면 가독성이 향상되고 더 많은 휴대가 가능합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top