두 개의 파일 file1
& file2
.
파일 1의 내용:
Text1
Text2
Text3
파일 2의 내용:
Sample1
Sample2
Sample3
file1
Text1의 "from"이라는 단어를 content 로 바꾸고 싶습니다 file2
. 다음 명령을 시도했습니다.
sed -i 's/Text1/r file2/g' file1
sed -e 's/Text1/`cat file1`/' < file2
둘 다 작동하지 않습니다. 내가 무엇을 놓치고 있습니까?
답변1
전체 척추가 아닌 하나만 교체하려는 경우 word
몇 가지 트릭을 사용해야 합니다.
sed "s/100/$(cat -E file2 |tr -d '\n')/;s/\\$/\n/g" file1
또는
sed -e s/100/$(tr \\n $ < file2)/ -e s/\\$/\\n/g file1
주요 아이디어 sed
는끈편집기이므로 여러 줄 문자열을 허용할 수 없습니다(즉,개행 문자 포함) 대부분의 경우. 요령은 교체되는 파일에서 개행 문자를 제거하고 교체한 다음 다시 넣는 것입니다.
답변2
file1을 file2의 내용으로 바꾸려는 경우 다음 중 하나가 작동합니다.
cat file2 > file1
cp file2 file1