次のようにタブ区切りのファイルがあります。
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
■コマンドの後には、次のフラグのうち0個以上が続くことがあります。
g
最初の項目だけでなく、正規表現に一致するすべての項目に置換を適用します。
number
正規表現の数値項目のみを置き換えます。
sコマンドの対話注:POSIX標準は、gと数値修飾子を混在させるときに何が起こるかを指定せず、現在のsed実装間で広く合意されている意味はありません。 GNU sed の場合、相互作用は次のように定義されます。 3 番目の一致の前の一致を無視し、3 番目の一致以降のすべての一致を一致させ、置き換えます。