두 개의 파일이 있습니다. file1
다음과 같은 텍스트가 포함됩니다.
#This Data written by the platform Team
id=kingDB
file2
다음과 같은 텍스트가 포함됩니다.
#This Data written by the platform Team
id=kiteDB,mangoDB
file1
데이터를 병합하고 싶습니다 file2
.file2
다음이 필요합니다:
#This Data written by the platform Team
id=kiteDB,mangoDB,kingDB
어떻게 해야 하나요?
답변1
파일로 병합하는 일반적인 방법은 다음과 같습니다.join
join -t = file{1,2} | sed s/=/,/2
답변2
sed
, tail
및 다음을 사용할 수 있습니다 cut
.
sed -i "s/=\(.*\)/=\1,$(tail -1 file1 | cut -d = -f 2)/" file2
First 사이의 명령은 $(...)
마지막 줄을 가져오고 file1
문자 =
를 기준으로 잘라낸 다음 초 필드( kingDB
)를 가져온 다음 두 번째 파일에서 "="를 사용하여 줄 끝에 넣습니다.
모든 sed
버전에 해당 기능이 있는 것은 아닙니다 -i
. 해당 버전에서 시도하지 않는 경우:
sed "s/=\(.*\)/=\1,$(tail -1 file1 | cut -d = -f 2)/" file2 > file2.tmp
mv -f file2.tmp file2
¹ 이것은 줄바꿈으로 끝나는 것으로 가정합니다 . 그렇지 않은 경우에는 생략하고 그대로 둘 수 있습니다.file2
sed
답변3
단일 행이 있는 경우 다음 코드를 사용할 수 있습니다.
echo "id=" $(paste -d "" <( awk -F',' {'printf "%s,%s,", $1, $2 '} file2 ) <( awk -F'=' {'print $2'} file1 ) <(sed -i 's/id=//g' file2 )) > file2