파일에 여러 줄을 추가하는 방법

파일에 여러 줄을 추가하는 방법

파일이 존재하지 않는 경우 파일을 찾은 다음 파일을 만들고 추가하는 bash 스크립트를 작성하고 있습니다.

Host localhost
    ForwardAgent yes

그래서 "line then new line 'tab' then text"민감한 포맷인 것 같아요. 나는 당신이 이것을 할 수 있다는 것을 알고 있습니다:

cat temp.txt >> data.txt

하지만 두 줄이 있기 때문에 이상해 보입니다. 이 형식으로 추가하는 방법이 있습니까?

echo "hello" >> greetings.txt

답변1

# possibility 1:
echo "line 1" >> greetings.txt
echo "line 2" >> greetings.txt

# possibility 2:
echo "line 1
line 2" >> greetings.txt

# possibility 3:
cat <<EOT >> greetings.txt
line 1
line 2
EOT

# possibility 4 (more about input than output):
arr=( 'line 1' 'line 2' );
printf '%s\n' "${arr[@]}" >> greetings.txt

파일에 쓰기 위해 sudo(다른 사용자 권한)가 필요한 경우 다음 명령을 사용하십시오.

# possibility 1:
echo "line 1" | sudo tee -a greetings.txt > /dev/null

# possibility 3:
sudo tee -a greetings.txt > /dev/null <<EOT
line 1
line 2
EOT

답변2

echo -e "Hello \nWorld \n" >> greetings.txt

답변3

또 다른 방법은tee

tee -a ~/.ssh/config << END
Host localhost
  ForwardAgent yes
END

tee매뉴얼 페이지에서 일부 선택 라인:

tee 유틸리티는 표준 입력을 표준 출력으로 복사하여 0개 이상의 파일을 복사합니다.

-a - 파일을 덮어쓰는 대신 파일에 출력을 추가합니다.

답변4

다음은 파일에 여러 줄을 추가하는 예입니다.

{
        echo '  directory "/var/cache/bind";'
        echo '  listen-on { 127.0.0.1; };'
        echo '  listen-on-v6 { none; };'
        echo '  version "";'
        echo '  auth-nxdomain no;'
        echo '  forward only;'  
        echo '  forwarders { 8.8.8.8; 8.8.4.4; };'
        echo '  dnssec-enable no;'
        echo '  dnssec-validation no;'
} >> your_file.txt

관련 정보