Text-Processing
用從第 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]
使用 GNU sed,它很簡單:
sed 's/\t/ /6g' file
s 命令後面可以跟零個或多個以下標誌:
g
將替換應用於正則表達式的所有匹配項,而不僅僅是第一個。
number
僅替換 regexp 的第一個匹配項。
s 命令中的互動 注意:POSIX 標準沒有指定當您混合 g 和 number 修飾符時應該發生什麼,並且目前在 sed 實現中沒有廣泛同意的含義。對於 GNU sed,互動定義為:忽略第一個數字之前的匹配,然後匹配並替換從第一個數字開始的所有匹配。