grep 출력을 수정하는 방법 : 각 행에서 각 결과 가져 오기
문제
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 대신 $(...)
를 사용하면 가독성이 향상되고 더 많은 휴대가 가능합니다.
제휴하지 않습니다 StackOverflow