code

텍스트 파일 끝에 출력을 추가하는 방법

starcafe 2023. 4. 23. 10:58
반응형

텍스트 파일 끝에 출력을 추가하는 방법

텍스트 파일 끝에 명령 출력을 추가하려면 어떻게 해야 합니까?

사용하다>>대신>출력을 파일로 전송할 때:

your_command >> file_to_append_to

한다면file_to_append_to존재하지 않습니다.생성됩니다.

예:

$ echo "hello" > file
$ echo "world" >> file
$ cat file 
hello
world

로.append파일 사용>>

echo "hello world"  >> read.txt   
cat read.txt     
echo "hello siva" >> read.txt   
cat read.txt

출력은 다음과 같습니다.

hello world   # from 1st echo command
hello world   # from 2nd echo command
hello siva

로.overwrite파일 사용>

echo "hello tom" > read.txt
cat read.txt  

그럼 아웃풋은

hello tom

>> 연산자를 사용할 수 있습니다.명령어의 데이터를 텍스트 파일의 끝에 추가합니다.

테스트하려면 실행해 보십시오.

echo "Hi this is a test" >> textfile.txt

이 작업을 여러 번 수행한 후 다음을 실행합니다.

cat textfile.txt

텍스트 파일에 텍스트가 여러 번 추가되었음을 확인할 수 있습니다.txt 파일.

사용하다command >> file_to_append_to파일에 추가할 수 있습니다.

예를들면echo "Hello" >> testFile.txt

주의: 1개만 사용하는 경우>파일의 내용을 덮어씁니다.이러한 일이 발생하지 않도록 하기 위해set -o noclobber고객님께.bashrc.

이렇게 하면 실수로 입력했을 때command > file_to_append_to파일이 이미 존재함을 경고합니다.오류 메시지 예시:file exists: testFile.txt

따라서,>기존 파일을 덮어쓰지 않고 새 파일만 만들 수 있습니다.

옵션 -a(--append)와 함께 tee를 사용하면 한 번에 여러 파일에 추가할 수 있으며 sudo도 사용할 수 있습니다(보호된 파일에 추가할 때 매우 유용합니다).또한 모든 셸이 > 및 >> 연산자를 지원하는 것은 아니기 때문에 bash 이외의 다른 셸을 사용할 필요가 있는 경우에는 흥미롭습니다.

echo "hello world" | sudo tee -a output.txt

나사산은 티에 대한 좋은 답을 가지고 있습니다.

를 사용합니다.>>파일에 텍스트를 추가하는 연산자.

나는 종종 둘을 혼동한다.출력을 통해 기억하는 것이 좋습니다.

덮어쓰기용 >

$ touch someFile.txt
$ echo ">" > someFile.txt
$ cat someFile.txt
  >
$ echo ">" > someFile.txt
$ cat someFile.txt
  >

>> 추가용

$ echo ">" > someFile.txt
$ cat someFile.txt
  >
$ echo ">" >> someFile.txt
$ cat someFile.txt
  >>

모든 질문에 대해:

cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt

그러면 720줄(30*24)이 otxt에 추가되고 이후는 현재 날짜에 따라 파일 이름이 변경됩니다.

cron을 사용하여 1시간마다 위의 작업을 수행합니다.

while :
do
    cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
    sleep 3600
done

echo 대신 printf를 사용하는 것은 신뢰성이 높고 새로운 라인 등의 포맷 처리를 하기 때문입니다.\n적절히.

다음 예에서는 앞의 예에서 echo와 같은 출력이 생성됩니다.

printf "hello world"  >> read.txt   
cat read.txt
hello world

단, 이 예에서 printf를 echo로 치환하면 echo는 \n을 문자열로 취급하므로 그 의도는 무시됩니다.

printf "hello\nworld"  >> read.txt   
cat read.txt
hello
world

두 가지 방법을 제안합니다.

  1. 사용하다>>셸 스크립트에서 특정 파일에 내용을 추가합니다.파일명은 고정하거나 패턴을 사용하여 변경할 수 있습니다.
  2. 셸 스크립트를 트리거하도록 매시간 cronjob 설정

에는 다음과 같은 것이 있습니다.

 1.  mangesh@001:~$ cat output.txt
    1
    2
    EOF

파일 끝에 추가할 경우 ----> 'text' > 'text' 사이의 공백을 기억하십시오.

  2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt 
    1
    2
    EOF
    somthing to append

:

  3.  mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
    somthing new to write

를 사용할 수 .cat 을 다른

cat fileName_1.txt >> fileName_2.txt

에서는 '하다'의 을 덧붙입니다.fileName_1.txt로로 합니다.fileName_2.txt.

에서는, OS 「」를 사용할 수 .type

type fileName_1.txt >> fileName_2.txt

다음 gif 이미지를 참조하십시오.

여기에 이미지 설명 입력

, 「」가 붙은 되는 것은 정확합니다.>>이 방법은 일반적으로 파일을 해석/처리할 때 루프에서 사용하고 각 행을 파일에 추가하는 경우 예상보다 훨씬 느릴 수 있습니다.

더 빠른 방법은 다음과 같습니다.

stringBuilder=""
while read -r line; do
  # $'\n' prints a newline so we don't have to know what special chars the string contains
  stringBuilder+="$line"$'\n'
done < "myFile.txt"
echo "$stringBuilder" > $file

경고: 모든 행을 메모리로 읽고 있습니다.메모리는 한정된 자원이기 때문에 대용량 파일에는 이 작업을 수행하지 마십시오.

언급URL : https://stackoverflow.com/questions/6207573/how-to-append-output-to-the-end-of-a-text-file

반응형