쉘을 사용하여 두 열을 결합하는 방법

쉘을 사용하여 두 열을 결합하는 방법

예를 들어, 항목에 10개의 열이 있고 출력에 5개의 열이 있기를 원합니다. 보다 구체적으로 말하면, 열 1을 열 2와, 열 3을 열 4, 열 5를 열 6과 결합하고 싶습니다.

내 입력은 다음과 같습니다.

ID01 1 2 0 1 2 0 1 0 
ID02 1 0 1 0 1 0 1 0 
ID03 2 1 0 2 1 0 2 1 
ID04 5 0 5 0 5 2 1 2 

내 입력은 다음과 같습니다.

ID01 12 01 20 10 
ID02 10 10 10 10 
ID03 21 02 10 21 
ID04 50 50 52 12 

이를 위해 나는 다음을 시도했습니다. perl -alne 'print join "", $F[0], split(" ", $F[1])' data 하지만 두 문자/열을 분할하는 방법을 모르겠습니다. 내 실제 데이터에는 수십만 개의 열이 있습니다.

답변1

다른 모든 공백을 제거하십시오.

perl -pe 's/ (\S+) / $1/g'
  • \S"공백이 아님"을 의미합니다.

답변2

그리고 awk:

awk '{ print $1, $2 $3, $4 $5, $6 $7, $8 $9 }' /path/to/input

관련 정보