반응형
bash를 사용하여 한 줄씩 읽고 공간을 유지하십시오.
"cat test.file"을 사용하면
1
2
3
4
bash 파일을 사용할 때
cat test.file |
while read data
do
echo "$data"
done
그것은 보여줄 것입니다
1
2
3
4
원본 테스트 파일과 같은 결과를 어떻게 만들 수 있습니까?
IFS=''
cat test.file |
while read data
do
echo "$data"
done
파이프 라인이 정말로 필요한 것으로부터 예제를 단순화했을 수도 있지만 다른 사람이 말하기 전에 다음과 같은 사실을 알고 있습니다.
IFS=''
while read data; do
echo "$data"
done < test.file
실제로 "read"호출에 인수를 제공하지 않으면 read는 공백을 유지하는 $ REPLY라는 기본 변수를 설정합니다. 따라서 다음과 같이 할 수 있습니다.
$ cat test.file | while read; do echo "$REPLY"; done
DigitalRoss의 반응을 보완하기 위해. 이 명령에 대해서만 IFS를 변경하려는 경우 중괄호를 사용할 수 있습니다. 그렇게하면 IFS의 값은 블록 내에서만 변경됩니다. 이렇게 :
echo '
word1
word2' | { IFS='' ; while read line ; do echo "$line" check ; done ; }
출력은 다음과 같습니다 (공백 유지).
word1 check
word2 check
read data일반적으로 "\ t \ n"인 IFS로 데이터를 분할합니다 . 이렇게하면 공백이 유지됩니다.
var=$(cat test.file)
echo "$var"
또는 다음과 같은 좋은 파일 구문 분석 도구를 사용하십시오. awk
awk '{
# do your stuff
print
}' file
아마도 IFS다른 사람들이 말했듯이 핵심 포인트입니다. 과 IFS=사이 에만 추가해야합니다 .whileread
cat test.file |
while IFS= read data
do echo "$data"
done
의 qutations를 잊지 마세요 . $data그렇지 않으면 echo공백이 정리됩니다.
그러나 Joshua Davies가 언급했듯이 미리 정의 된 변수를 사용하는 것이 좋습니다 $REPLY.
참고 URL : https://stackoverflow.com/questions/7314044/use-bash-to-read-line-by-line-and-keep-space
반응형
'Program Club' 카테고리의 다른 글
| Android 스튜디오로 프로젝트를 빌드하지 못했습니다. (0) | 2020.11.30 |
|---|---|
| 'data-sort'속성에 따라 jQuery에서 div를 정렬합니까? (0) | 2020.11.30 |
| 기본 PrimeFaces CSS를 사용자 지정 스타일로 재정의하려면 어떻게해야합니까? (0) | 2020.11.30 |
| 자바 스크립트에서 localstorage, sessionStorage 및 쿠키를 지우는 방법은 무엇입니까? (0) | 2020.11.29 |
| Pandas 시리즈를 DataFrame으로 변환 (0) | 2020.11.29 |