![sed [duplicate]를 사용하여 한 파일을 다른 파일에 추가](https://linux55.com/image/132240/sed%20%5Bduplicate%5D%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%95%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%B6%94%EA%B0%80.png)
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.php
file.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