편집기를 열지 않고 텍스트 파일에 줄을 추가하는 명령


147

편집기를 열지 않고 파일에 추가하려는 줄이 있다고 가정합니다.

이 줄을 어떻게 추가 할 수 있습니까

alias list='ls -cl --group-directories-first'

이 파일에

config.fish

답변:


237

연산자 를 사용하여 파일에 텍스트 을 추가 할 수 있습니다 >>.

echo "hello world" >> my_file.txt

또는 귀하의 경우

echo "alias list='ls -cl --group-directories-first'" >> config.fish

다른 유형의 따옴표에 유의하십시오 .


25
echo 자체를 사용하지만 하나만 지정 >하면 파일이 추가되지 않고 잘립니다. : 안전한 명령에 대해 당신은 나오지도 사용할 수 있습니다sed -i '$a hello world' filename
반전

12
설명 : -i파일을 업데이트합니다 (그렇지 않으면 결과를 stdout에 인쇄합니다) $. 파일의 끝에 일치하는 정규 표현식이며 a다음 텍스트를 파일 이름에 추가합니다.
반전

echo "hello world" >> my_file.txt로 새로운 마지막 줄을 만들지 않고 마지막 줄 HW의 문자열에 추가하십시오.
Timo

HW@timo 는 무엇입니까 ?
7wp

어쩌면 "Hello World"@ 7wp :) echo줄 바꿈을 추가하는 것입니다 (단지 여러 문자가 아닌 줄 바꿈). 로 줄 바꿈을 끌 수 있습니다 -n.
Stefano Palazzo

3

텍스트 편집기를 열지 않고, 특히 우분투에서 사용 가능한 여러 개의 텍스트 처리 유틸리티를 통해 파일에 추가하는 방법은 많이 있습니다.

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish

1

Stefano 's answer에 추가하면 다음을 사용할 수도 있습니다 cat.

  • heredoc 사용하기 :

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF

    <<'EOF'"은 다음 줄을 입력 할 때까지 입력으로 사용하십시오"를 의미 EOF합니다. 따옴표는 문자 그대로 입력을받는 것을 의미합니다.

  • 또는 stdin에 줄을 입력하십시오.

    $ cat >> config.fish

    그런 다음 줄을 붙여 넣거나 입력하고을 눌러 Enter새 줄로 이동 한 다음 Ctrl + D를 눌러 끝을 표시하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.