Unix。在具有不同分隔符的 2 个特定列之间更改分隔符
Unix. Change separator between 2 specific columns that have a different separator
我有一个包含 6 列的巨大 .txt 文件 A。前 5 列由制表符分隔,但第 5 列和第 6 列由白色 space 分隔。某些列缺少元素。使用 Unix,我如何生成另一个文件 B.txt,其中第 5 列和第 6 列由制表符分隔?
A.txt
1 886620 rs201016776 T A 1:886620-TG
1 879576 rs115979567 C T
1 886817 rs111748052;rs10465241 C CATTTT JHU_1.886816
1 889255 rs150003341 C T Variant37585
1 891659 rs116557519 G A JHU_1.891658
B.txt
1 886620 rs201016776 T A 1:886620-TG
1 879576 rs115979567 C T
1 886817 rs111748052;rs10465241 C CATTTT JHU_1.886816
1 889255 rs150003341 C T Variant37585
1 891659 rs116557519 G A JHU_1.891658
使用column -t inputFile
$ column -t A.txt > B.txt
如果使用 column
的 tabular
形式不起作用,可以使用 awk
:
明确说明 tab
$ awk '{print "\t""\t""\t""\t""\t""\t"}' A.txt > B.txt
你可以试试 gnu sed
sed 's/[[:blank:]]/\t/g' A.txt > B.txt
我有一个包含 6 列的巨大 .txt 文件 A。前 5 列由制表符分隔,但第 5 列和第 6 列由白色 space 分隔。某些列缺少元素。使用 Unix,我如何生成另一个文件 B.txt,其中第 5 列和第 6 列由制表符分隔?
A.txt
1 886620 rs201016776 T A 1:886620-TG
1 879576 rs115979567 C T
1 886817 rs111748052;rs10465241 C CATTTT JHU_1.886816
1 889255 rs150003341 C T Variant37585
1 891659 rs116557519 G A JHU_1.891658
B.txt
1 886620 rs201016776 T A 1:886620-TG
1 879576 rs115979567 C T
1 886817 rs111748052;rs10465241 C CATTTT JHU_1.886816
1 889255 rs150003341 C T Variant37585
1 891659 rs116557519 G A JHU_1.891658
使用column -t inputFile
$ column -t A.txt > B.txt
如果使用 column
的 tabular
形式不起作用,可以使用 awk
:
tab
$ awk '{print "\t""\t""\t""\t""\t""\t"}' A.txt > B.txt
你可以试试 gnu sed
sed 's/[[:blank:]]/\t/g' A.txt > B.txt