탭으로 구분된 파일에 두 개의 새 열 추가

탭으로 구분된 파일에 두 개의 새 열 추가

특정 항목이 포함된 탭으로 구분된 파일 끝에 두 개의 새 열을 추가해야 합니다. 내 파일은 다음과 같습니다

chr2    88861474    88861574    IGKJ2
chr2    88861170    88861270    IGKJ3
chr2    88860835    88860935    IGKJ4
chr2    88860517    88860617    IGKJ5

다음은 내 예상 결과입니다

chr2    88861474    88861574    IGKJ2   0   -
chr2    88861170    88861270    IGKJ3   0   -
chr2    88860835    88860935    IGKJ4   0   -
chr2    88860517    88860617    IGKJ5   0   -

0-항목을 사용하여 다른 파일을 생성할 수 paste있으며 명령을 사용하여 새로 생성된 파일을 원본 파일과 병합하여 원하는 출력을 얻을 수 있지만 다른 옵션을 찾고 있습니다( awk또는 사용 sed).

답변1

awk에서는 다음과 같이 보입니다.

awk -v OFS='\t' '{print $0, "0", "-"}' inputfile

OFS출력 구분 기호를 로 설정한 tab다음 각 줄 뒤에 필수 필드를 인쇄합니다.

답변2

명령의 대체 부분을 sed지원 한다면 시도해 볼 수 있습니다\ts

sed 's/$/\t0\t-/' inputfile

그렇지 않은 경우 쉘은 ksh93 $'...'스타일 인용을 지원합니다.

sed $'s/$/\t0\t-/' inputfile

그렇지 않은 경우 언제든지 다음을 수행할 수 있습니다.

TAB=$(printf '\t')
sed "s/\$/${TAB}0${TAB}-/" inputfile

답변3

다음만 사용하세요 bash:

#!/bin/bash

while read line
do
   printf "%s\t0\t-\n" "${line}"
done < inputfile

답변4

awk 'BEGIN{OFS="\t"}{$(NF+1)="0\t-";print }' filename

산출

chr2    88861474    88861574    IGKJ2   0   -
chr2    88861170    88861270    IGKJ3   0   -
chr2    88860835    88860935    IGKJ4   0   -
chr2    88860517    88860617    IGKJ5   0   -

관련 정보