파일 내용을 복사하세요.

파일 내용을 복사하세요.

특정 조건이 충족되면 파일의 전체 내용을 동일한 파일에 복사해야 하는 요구 사항이 있습니다. 파일은 다음과 같습니다.

$ cat in.txt
ip
10.22.1.34
10.22.1.35

특정 조건이 충족될 때, 예를 들어

if [[ d=1 ]]; then
copy the file content
fi

파일의 내용은 다음과 같이 복사되어야 합니다.

ip
10.22.1.34
10.22.1.35
ip
10.22.1.34
10.22.1.35

답변1

파일 내용을 변수에 저장한 다음(개행 문자를 저장함) 변수에서 동일한 파일에 추가할 수 있습니다. 변수 주위에 따옴표를 사용하는 것을 잊지 마십시오.

x=$(cat test.txt) && echo "$x" >> test.txt

또는 "tee" 명령을 사용하여 동일한 파일에 직접 추가할 수 있습니다. 표준 출력에서 ​​파일의 원래 내용을 처음 표시할 때 혼동하지 마십시오. 파일의 실제 내용도 복사됩니다.

cat test.txt | tee -a test.txt

tee의 출력을 표시하지 않으려면 물론 다음을 수행할 수 있습니다.

    cat test.txt | tee -a test.txt > /dev/null

답변2

다음을 수행할 수 있습니다. cat in.txt > /tmp/tmp.txt && cat /tmp/tmp.txt >> in.txt

답변3

A는 지정된 파일의 끝에 stdout의 내용을 추가하여 cat file.txt >> file.txt이 문제를 해결해야 합니다.>>

답변4

cat파일을 설정한 다음 sed를 사용하여 추가해 볼 수 있습니다 . 그래서 이렇게 :

cat in.txt
ip
10.22.1.34
10.22.1.35

d=1
if [ ${d} -eq 1 ]; then
    cat in.txt | while read LINE; do sed -i '$a\'"${LINE}" in.txt; done
fi

cat in.txt
ip
10.22.1.34
10.22.1.35
ip
10.22.1.34
10.22.1.35

관련 정보