특정 항목이 포함된 탭으로 구분된 파일 끝에 두 개의 새 열을 추가해야 합니다. 내 파일은 다음과 같습니다
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
지원 한다면 시도해 볼 수 있습니다\t
s
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 -