Unix的。更改具有不同分隔符的2个特定列之间的分隔符

时间:2018-02-19 21:02:12

标签: unix separator

我有一个包含6列的巨大.txt文件A.前5列由制表符分隔,但列5和6由空格分隔。有些列缺少元素。使用Unix,我如何生成另一个具有第5列和第5列的文件B.txt。 6由标签分隔?

A.TXT

# int FEISC_0xB0_ISOCmd(int iReaderHnd, unsigned char cBusAdr, unsigned char* cReqData, int iReqLen, unsigned char* cRspData, int* iRspLen, int iDataFormat)
feisc.FEISC_0xB0_ISOCmd.argtypes = c_int,c_ubyte,c_char_p,c_int,c_char_p,POINTER(c_int),c_int

cReqData = b'0100'
rspData = create_string_buffer(512);
iRspLen = c_int(len(rspData))
iBack = feisc.FEISC_0xB0_ISOCmd(iReader,255,cReqData,len(cReqData),rspData,iRspLen, 0x01)

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

2 个答案:

答案 0 :(得分:2)

使用column -t inputFile

 $ column -t A.txt > B.txt

如果使用tabular的{​​{1}}表单不起作用,可以使用column明确表示tab

awk

答案 1 :(得分:2)

您可以尝试使用gnu sed

sed 's/[[:blank:]]/\t/g' A.txt > B.txt