파일에는 많은 항목이 있지만 샘플 릴리스의 경우 파일당 2개의 항목만 있습니다. 파일 1의 첫 번째 줄을 파일 2의 첫 번째 줄과 병합하고 싶습니다. 예는 다음과 같습니다.
파일 1.txt
Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5
파일 2.txt
Fnb_dm__exachange_rollback_character
dnb_exchange_brm_rollback_character
나는 다음과 같은 출력을 원합니다 :
Fnb_dm__exachange_rollback_character :Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character :Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5
ksh를 사용하여 이를 수행하는 방법은 무엇입니까?
답변1
paste
다음 명령을 사용할 수 있습니다. 예를 들어 콜론 구분 기호를 사용하여 파일을 한 줄씩 병합하려면 다음 명령을 사용하세요 .
$ paste -d: file2.txt file1.txt
Fnb_dm__exachange_rollback_character:Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character:Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5
여러 문자 구분 기호가 필요한 경우 pr
ex를 사용할 수 있습니다.
$ pr -TmJS' :' file2.txt file1.txt
Fnb_dm__exachange_rollback_character :Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character :Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5
답변2
아래와 같이 해봤는데 잘 되더라구요
i=`awk 'NR==1{print $0}' file1`;awk -v i="$i" 'NR==1{$0=$0i}1' file2
산출
Fnb_dm__exachange_rollback_characterStart Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character
답변3
아래와 같이 해봤는데 잘 되더라구요
for i in 1 2; do j=`sed -n ''$i'p' file1`;sed -n ''$i'p' file2|sed "s/.*/&$j/g"; done
산출
Fnb_dm__exachange_rollback_characterStart Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_characterStart Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5