여러 행을 선택적으로 병합하시겠습니까?

여러 행을 선택적으로 병합하시겠습니까?

헤더 줄 뒤에 문자열이 여러 번 나오는 큰 파일이 있습니다. 예를 들어:

file1

VHBFBJBDSBVVFJBSV
SVJBVHJBVJ
SVKJBVJBNVKVJV

file2

dfhgdgffdghgg
SVKJBVJBNVKVJV

헤더는 동일하게 유지하되 2행 이후의 모든 문자를 한 행으로 병합하고 싶습니다. 누구든지 뭔가를 제안할 수 있나요?

답변1

이 솔루션은 tail헤더 행을 제거하고 결과를 .tmp 파일에 저장한 다음 paste행을 병합하기 위한 것입니다. 생성된 파일은 ab.pasted입니다.

tail +2 a > a.tmp
tail +2 b > b.tmp
paste a.tmp b.tmp > ab.pasted
rm a.tmp b.tmp

답변2

귀하의 질문을 올바르게 이해했다면 다음을 원합니다.

{ head -n 1; paste - file2; } < file1 > newfile

다음과 유사한 것을 생성합니다 newfile.

VHBFBJBDSBVVFJBSV
SVJBVHJBVJ      dfhgdgffdghgg
SVKJBVJBNVKVJV  SVKJBVJBNVKVJV

위 줄은 탭으로 붙여넣어졌습니다. SPC 문자를 원할 경우 옵션을 추가하고 -d ' ', paste구분자를 원치 않을 경우에는-d '\0'

관련 정보