파일에 여러 줄을 추가하는 방법 new line ‘tab’ then text”민감한

파일이 존재하지 않으면 파일을 찾아 bash 스크립트를 작성하여 파일에 추가하십시오.

Host localhost
    ForwardAgent yes

그래서 "line then new line 'tab' then text"민감한 형식이라고 생각합니다. 나는 당신이 이것을 할 수 있다는 것을 알고 있습니다 :

cat temp.txt >> data.txt

그러나 두 줄 이후로 이상하게 보입니다. 이 형식으로 추가하는 방법이 있습니까?

echo "hello" >> greetings.txt


답변

# 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

파일에 쓰는 데 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

답변

printf '%s\n    %s\n' 'Host localhost' 'ForwardAgent yes' >> file.txt

또는 질문에 네 개의 공백이 아닌 문자 그대로의 탭인 경우 :

printf '%s\n\t%s\n' 'Host localhost' 'ForwardAgent yes' >> file.txt

와 동일한 효과를 얻을 수 echo있지만 구현마다 구현 방법이 다르지만 printf일정합니다.


답변

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

답변

다른 접근 방식은 tee

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

tee의 매뉴얼 페이지 에서 몇 가지 선택 라인 :

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

-a-파일을 덮어 쓰지 않고 출력을 파일에 추가합니다.


답변

SED는 다음과 같이 파일의 끝에 행을 추가 할 수 있습니다. 파일의 끝을

sed -i '$ a text to be inserted' fileName.file
$선택 a하고 추가 하도록 지시 한 후 삽입 할 텍스트를 표시합니다. 물론 파일 이름입니다.

출처 :
http://www.yourownlinux.com/2015/04/sed-command-in-linux-append-and-insert-lines-to-file.html

========== EDIT == ==========

이 방법은 다른 솔루션보다 추가 이점이 있습니까?
예,이 접근 방식은 다음과 같이 검색시 반환되는 파일에 추가 할 수있는 이점이 있습니다.
find . -name "*.html" -exec sed -i '$ a </html>' {} \;

위 예제를 사용하여 여러 디렉토리 내의 모든 html 페이지에서 누락 된 html 태그를 삽입했습니다.

====================================


답변

sudo와 함께 사용할 수 있기 때문에 sed를 사용했습니다. 예를 들면 다음과 같습니다.

sudo sed -i '$ a text to be inserted' fileName.file 

대안은 다음과 같이 매우 추악합니다.

sudo bash -c "echo a text to be inserted >> fileName.file"  

ssh로 끝났을 때 더 못 생겼습니다.


답변

또 다른 라이너는 다음과 같습니다.

echo "Greetings 1" >> greetings.txt && echo "Greetings 2" >> greetings.txt

-e더 많은 제어 기능을 제공 하므로 옵션 사고를 선호합니다 .

echo -e "Greeting 1\nGreetings 2\n" >> greetings.txt