쉘 명령을 사용하여 한 파일에서 다른 파일로 줄을 삽입하는 방법은 무엇입니까?

쉘 명령을 사용하여 한 파일에서 다른 파일로 줄을 삽입하는 방법은 무엇입니까?

file1의 처음부터 8줄을 쓰고 싶습니다 file2.

광산에는 file1다음 줄이 포함되어 있습니다.

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear
# other stuff

광산에는 file2다음 줄이 포함되어 있습니다.

.lruno := 72  
.infno := 1    
writedb     
clear

내 출력 파일은 다음과 같습니다

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear  
.lruno := 72  
.infno := 1    
writedb       
clear

답변1

표준 도구를 사용하여 이 작업을 수행할 수 있습니다.

그리고 paste:

paste -sd'\n' file1 file2

그리고 sed:

sed p file1 file2

답변2

그것은 다음과 같습니다:

head -n8 file1 | cat - file2 > file2."$$" && mv file2."$$" file2

답변3

cat file1 file2 > output_file

Cat은 연결(concatenate)의 줄임말입니다. 이것이 바로 여러분이 하고 싶은 일입니다. 결과를 file1에 유지하려면 끝에 추가하면 됩니다.

cat file2 >> file1

첫 번째 경우에는 output_file이 잘립니다(사용됨 >). double을 사용하면 추가됩니다( >>)

답변4

그리고ed

ed file2 <<END
0r file1
w
q
END

"0" 줄에서 "file1" 파일을 읽고 저장하고 종료합니다.

한 줄로:printf "%s\n" "0r file1" w q | ed file2

관련 정보