在 awk 输出中维护分隔符
Maintaining the separator in awk output
我想对文件进行子集化,同时在 bash 中使用“awk”将分隔符保留在子集化输出中。
这就是我正在使用的:
输入文件是用 R 语言创建的:
inp <- 'AX-1 1 125 AA 0.2 1 AB -0.89 0 AA 0.005 0.56
AX-2 2 456 AA 0 0 AA -0.56 0.56 AB -0.003 0
AX-3 3 3445 BB 1.2 1 NA 0.002 0 AA 0.005 0.55'
inp <- read.table(text=inp, header=F)
write.table(inp, "inp.txt", col.names=F, row.names=F, quote=F, sep="\t")
(因此字段之间用制表符分隔)
bash中的代码:
awk {'print '} inp.txt
结果:
AX-11125
AX-22456
AX-333445
请注意,我的列已合并到 awk
输出中(我希望它作为输入文件以制表符分隔)。可能这是一个简单的语法问题,但如果有任何想法,我将不胜感激。
使用
awk -v OFS='\t' '{ print , , }'
或
awk '{ print "\t" "\t" }'
一个接一个地写,中间没有运算符,awk 中的变量是串联的 -
在这方面与 </code> 没有什么不同。</p>
<p>第一个解决方案将输出字段分隔符 <code>OFS
设置为制表符,然后使用逗号运算符打印分隔字段。第二种解决方案只是直接在其中撒上制表符,所有内容都像以前一样连接起来。
我想对文件进行子集化,同时在 bash 中使用“awk”将分隔符保留在子集化输出中。
这就是我正在使用的:
输入文件是用 R 语言创建的:
inp <- 'AX-1 1 125 AA 0.2 1 AB -0.89 0 AA 0.005 0.56
AX-2 2 456 AA 0 0 AA -0.56 0.56 AB -0.003 0
AX-3 3 3445 BB 1.2 1 NA 0.002 0 AA 0.005 0.55'
inp <- read.table(text=inp, header=F)
write.table(inp, "inp.txt", col.names=F, row.names=F, quote=F, sep="\t")
(因此字段之间用制表符分隔)
bash中的代码:
awk {'print '} inp.txt
结果:
AX-11125
AX-22456
AX-333445
请注意,我的列已合并到 awk
输出中(我希望它作为输入文件以制表符分隔)。可能这是一个简单的语法问题,但如果有任何想法,我将不胜感激。
使用
awk -v OFS='\t' '{ print , , }'
或
awk '{ print "\t" "\t" }'
一个接一个地写,中间没有运算符,awk 中的变量是串联的 -
在这方面与 </code> 没有什么不同。</p>
<p>第一个解决方案将输出字段分隔符 <code>OFS
设置为制表符,然后使用逗号运算符打印分隔字段。第二种解决方案只是直接在其中撒上制表符,所有内容都像以前一样连接起来。