변경된 내용이 포함된 파일 복사

변경된 내용이 포함된 파일 복사

나는 bash 스크립트를 작성 중이며 일부 파일을 파일로 저장 .bak하고 처음에 해당 내용을 변경해야 합니다( sed이 목적을 위해).

내 bash 스크립트에 대해 이것을 작성하는 더 좋은 방법을 찾고 있습니다.
cp file.txt file.txt.bak | sed -i '1i#Backup file' file.txt.bak

어쩌면 누군가가 이 작업을 수행하는 더 효율적인 방법을 알고 있거나 sed를 사용하거나 파이프를 사용하지 않고 수행하는 방법을 알고 있을 수도 있습니다.

답변1

파이프는 거기에서 전혀 아무것도 하지 않습니다. cp출력이 없으므로 출력을 다른 프로그램으로 파이프할 수 없습니다. 나는 당신이 원 ;하거나 &&그 반대라고 생각합니다.

## copy the file and then run sed
cp file.txt file.txt.bak; sed -i '1i#Backup file' file.txt.bak

또는

## copy the file and then run sed BUT only if the copy was successfull
cp file.txt file.txt.bak && sed -i '1i#Backup file' file.txt.bak

그러나 원하는 것이 첫 번째 줄이 변경된 원본 파일의 복사본이라면 sed가 실제로 이를 수행할 수 있습니다.

sed  '1i#Backup file' file.txt > file.txt.bak

관련 정보