Articles
@OhLook
echo -e “ \ n ”가 하나가 아닌 두 개의 빈 줄을 제공하는 이유는 무엇입니까?
On 2월 1, 2021 by admin file.txt에 “aaaa”줄이 있다고 말하고 그 뒤에 빈 줄을 하나만 추가하고 빈 줄 뒤의 텍스트 줄.
내가 한 일 :
echo -e “\ n”>> file.txt
echo “bbbb”>> file.txt
그리고 두 개의 빈칸을 보았습니다. aaaa와 bbbb 사이의 줄
echo “bbbb”>> file.txt 만 사용하면 두 텍스트 줄 사이에 빈 줄이 없습니다.
왜 이런 일이 발생하고 어떻게 제거합니까? ?
댓글
- 알겠습니다. 정답을 요약하겠습니다. \ n은 커서를 다음 줄로 이동하는 것을 의미하고 '은 빈 줄을 의미하지 않습니다.
답변
echo
는 인수로 사용하는 문자열을 출력 한 다음 출력 된 문자열 끝에 개행 문자를 추가하여 행을 종료합니다.
With
echo "string"
string
가 표시되고 끝에 개행이 표시됩니다.
그러므로
echo -e "\n"
당신은 당신의 줄 바꿈을 얻을 것이고, 끝 부분에 줄 바꿈 (즉, 두 개의 빈 줄).
추가 줄 바꿈을 원하지 않는 경우 (즉, 종료되지 않은 줄을 출력하려면) echo
를 옵션 또는 빈 줄만 삽입하려는이 경우 echo ""
또는 echo
를 사용하세요. 인수없이.
bash
의 help echo
:
Options: -n do not append a newline -e enable interpretation of the following backslash escapes
bash
외에 다른 셸로 이식 할 수있는 것을 원한다면 대신 printf
를 사용하세요.
p>
printf "\n" >>file.txt printf "bbbb\n" >>file.txt
또는 단일 리디렉션으로이 두 명령문을 수행하는 또 다른 방법 :
{ printf "\n" printf "bbbb\n" } >>file.txt
또는 간단히
printf "\nbbbb\n" >>file.txt
관련 :
댓글
- ' 실제로 줄 바꿈이 자동으로 첫 번째 줄에 추가되었습니다. 에코를 사용했는데 두 번째 시도에서 텍스트 사이에 빈 줄이없는 이유는 무엇입니까?
- @OhLook 첫 번째 시도에서 두 개의 줄 바꿈을 추가합니다 (하나는
\n
, 다른 하나는echo
가 항상 추가하는 개행 문자에서 나옵니다). 두 번째 시도에서는 끝에 줄 바꿈이있는bbbb
문자열을 추가합니다. ' 혼란이 어디에서 오는지 잘 모르겠습니다. - @OhLook 왜 빈 줄이 있을까요? 파일에는
aaaa\nbbbb\n
가 포함됩니다. 여기서aaaa\n
는 처음부터 있었고bbbb\n
는echo 'bbbb'
에 의해 추가되었습니다.echo -e '\n'
를 수행하면 파일의 기존 콘텐츠에\n\n
이 추가됩니다.aaaa\n
이 이미 포함되어있는 경우 'aaaa\n\n\n
를 얻습니다. - @OhLook
\n
는 줄 바꿈 문자 입니다. 커서를 다음 줄의 시작 부분으로 이동합니다. 처음부터aaaa
끝에 줄 바꿈이 없으면 iv id =를 추가 할 때 한 줄에aaaabbbb
가 표시됩니다. “14c35d2735″>
.
echo -e '\n'
는 두 개의 줄 바꿈을 추가합니다. 이전 주석을 참조하십시오. 파일에 세 개의 개행 문자가 실행됩니다. 즉, aaaa
줄의 끝인 줄 바꿈 (처음부터 있었음)과 echo -e '\n'
에 의해 두 개가 추가되었습니다. . 이것은 두 개의 빈 줄을 만듭니다.
답글 남기기