2017-10-10 54 views
0

我想用相同的分隔符打印分隔文件的列1,2,3,6。分隔符是1e(十六进制)或036(八进制)。这是bash脚本。我从帖子看我的学尝试是做到这一点的好办法:从文件中提取列并将其打印到带有分隔符的新文件Shellscript

awk 'BEGIN{OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt 

当我做到这一点,该文件包含了从源文件。看看我做错了什么。下面我有一些示例输入和输出。实际的文件有很多记录。 ^^表示1e(十六进制)或\ 036(八进制)。

输入:

Q001^^bob123^^001^^X^^ ^^^^ ^^    ^^TX^^B^^ ^^ ^^2^^10 

输出:

Q001^^bob123^^001 
+0

请将示例输入和预期输出张贴到代码标签中。 – RavinderSingh13

回答

3

OFS输出字段分隔符,而不是输入字段分隔符。你也必须设置FS

awk 'BEGIN{FS=OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt 
相关问题