Shell 공백이 포함된 텍스트 세부 정보

셸이 파일을 반복합니다.


때로는 어떤 폴더 아래의 모든 파일을 똑같이 처리해야 한다. 예를 들어 모든 파일에 대해 줄 수를 통계해야 한다. 이때 파일을 훑어보는 방식은 매우 간단하다.
$ for i in `ls`;do wc -l $i;done
55552 f123.txt
55819 f124.txt
56118 f125.txt
56404 f126.txt
56633 f127.txt
56842 f128.txt
여기에 for를 사용했는데...do...done 순환, 순환 문장이 한 줄 위에 쓰일 때 주의해야 한다.분리하다.
ls는 인용부호로 확대해야 한다.

셸은 공백 텍스트를 반복합니다.


공백이나 특수 문자를 포함하는 파일을 처리하는 것은 Linux를 사용하는 모든 사람이 반드시 파악해야 한다.본고는 빈칸이 있는 파일에서 for 순환을 어떻게 사용하는지 토론하고자 합니다.
테스트 텍스트는 다음과 같습니다.
This line has spaces
these
do
not
현재, 우리는 for 순환을 사용하여 이 텍스트를 교체합니다.우리가 for 순환을 실행할 때, 셸은 첫 번째 줄의 빈칸을 볼 수 있으며, 모든 줄이 서로 다른 교체라고 가정합니다.

[root@test ~]# for i in $(cat test);do echo $i;done
This
line
has
spaces
these
do
not
IFS는 단어를 구분할 때 구분할 문자나 문자 집합을 정의합니다.
위키백과: 유닉스 운영체제의 많은 명령줄 해석기("Shell")에 대해 내부 필드 구분자(약칭 IFS)는 패턴을 특정한 조작으로 나누는 데 사용되는 표기를 정의하는 변수를 가리킨다.
기본적으로 IFS(필드 구분자)의 값은 입니다.따라서 셸이 첫 줄의 빈칸을 보았을 때, 이 줄을 네 개의 표기 (네 단어) 로 구분합니다.
IFS 값을 수정하여 요구 사항 충족
IFS는 환경 변수입니다.환경 변수를 변경하기 전에 가장 좋은 방법은 그것들의 내용을 저장하는 것이다.이렇게 하면 그것들을 쉽게 기본값으로 설정할 수 있다.
우선, IFS 변수의 값을 OLDIFS에 저장합니다.

OLDIFS=$IFS
원하는 값으로 IFS를 수동으로 설정할 수 있습니다.이런 상황에서 우리는 필드 구분자를 줄 바꾸기로 해야 한다.우리는 어떤 변수처럼 IFS를 설정할 수 있다.

IFS=<our value>
IFS를 줄 바꿈 문자로 설정하려면 echo 명령에서 줄 바꿈 문자의 출력을 가져오는 명령을 사용할 수 있습니다.

IFS=`echo -e "
"`
echo-e ""의 출력은 줄 바꿈입니다.역따옴표 패키지에 사용되며 셸 명령의 출력을 변수 IFS로 사용합니다.
현재, 우리가 같은 for 순환을 실행할 때, 셸은 줄을 바꾸어 텍스트를 구분합니다.

[root@test ~]# for i in $(cat test); do echo $i; done
This line has spaces
these
do
not


번역 Looping Through a File that Contains Spaces C Bash for Loop

총결산


셸이 빈칸을 포함하는 텍스트를 훑어보는 방법에 대한 이 글은 여기에 소개됩니다. 더 많은 셸이 빈칸을 훑어보는 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기