탭을 n열부터 마지막까지 공백으로 바꿉니다.

탭을 n열부터 마지막까지 공백으로 바꿉니다.

다음과 같이 탭으로 구분된 파일이 있습니다.

GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558474.1  1155234 1156286 44173   polyketide synthase [Mycobacterium]
GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558475.1  1156298 1156807 12      isoprenylcysteine       carboxyl        methyltransferase       [Mycobacterium]
GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558476.1  1156804 1157820 -3      NAD(P)/FAD-dependent    oxidoreductase  [Mycobacterium]

6열부터 마지막 ​​열까지의 탭 문자를 공백으로 바꾸려면 어떻게 해야 합니까?

출력은 다음과 같아야 합니다.

GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558474.1  1155234 1156286 44173   polyketide synthase [Mycobacterium]
GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558475.1  1156298 1156807 12      isoprenylcysteine carboxyl methyltransferase [Mycobacterium]
GCF_000014165.1_ASM1416v1.dist_nbr_anntn        WP_011558476.1  1156804 1157820 -3      NAD(P)/FAD-dependent oxidoreductase [Mycobacterium]

답변1

GNU sed를 사용하면 다음과 같이 간단합니다.

sed 's/\t/ /6g' file

s 명령 뒤에는 다음 플래그 중 0개 이상이 올 수 있습니다.

g 

첫 번째 항목뿐만 아니라 정규식과 일치하는 모든 항목에 대체를 적용합니다.

number 

정규식의 숫자 항목만 바꿉니다.

s 명령의 상호 작용 참고: POSIX 표준은 g와 숫자 수정자를 혼합할 때 어떤 일이 발생하는지 지정하지 않으며 현재 sed 구현 간에 널리 합의된 의미가 없습니다. GNU sed의 경우 상호 작용은 다음과 같이 정의됩니다. 세 번째 일치 이전의 일치 항목을 무시한 다음 세 번째 일치 이후의 모든 일치 항목을 일치시키고 교체합니다.

바라보다sed, 스트림 편집기: s명령

관련 정보