sed [duplicate]를 사용하여 한 파일을 다른 파일에 추가

sed [duplicate]를 사용하여 한 파일을 다른 파일에 추가

file.bak다음 명령을 사용하여 추가하려고 했습니다 file.php.

sed r file.php file.bak

필요에 따라 올바른 출력을 제공합니다. 단, file.bak에 추가하여 저장하지는 않습니다 file.php.

어떻게 해야 할지 아시나요?

답변1

이건 필요하지 않습니다 sed. 다음을 사용하면 충분합니다 cat.

cat file.bak >>file.php

그러면 내용이 file.bak끝에 추가됩니다 file.php.


프로그램은 내용을 표준 출력으로 출력 sed합니다 .r file.phpfile.php각 입력 라인에 대해. file.bak행이 여러 개인 경우 file.php삽입 사본이 여러 개 생성됩니다.

sed데이터를 추가하는 데 사용하려는 경우 이는 원하는 것이 아닙니다.

대신에,cat여기가 더 낫다는 사실을 무시하세요,

sed '$r file.bak' file.php

file.bak마지막 줄에 도달할 때까지 읽혀지지 않습니다 file.php. 이는 두 파일의 내용을 연결하는 효과가 있습니다(먼저 의 내용 file.php, 다음으로 의 내용 file.bak).

결과를 다시 쓰려면 file.php출력을 새 파일로 리디렉션한 다음 안전한 방법으로 해당 위치로 이동할 수 있습니다.

sed '$r file.bak' file.php >tmpfile && mv tmpfile file.php

-i또는 일부 구현 sed에 있는 옵션을 (안전하지 않은 방식으로) 사용할 수 있습니다 .

sed -i '$r file.bak' file.php

관련 정보