将分离器保持在awk输出中
我希望在bash中使用“awk”将分隔符保留在子集输出中的同时,将文件子集化 这就是我正在使用的: 输入文件以R语言创建,具有:将分离器保持在awk输出中,awk,syntax,separator,Awk,Syntax,Separator,我希望在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.
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")
结果是:
AX-11125
AX-22456
AX-333445
请注意,我的列合并在awk
输出中(我希望它作为输入文件以制表符分隔)。可能这是一个简单的语法问题,但如果有任何想法,我将不胜感激。使用
awk -v OFS='\t' '{ print $1, $2, $3 }'
或
awk中的变量在没有运算符的情况下一个接一个地写入,在这方面,awk中的变量是串联的-$1$2$3
与$1$2$3
没有什么不同
第一种解决方案将输出字段分隔符OFS
设置为选项卡,然后使用逗号运算符打印分隔字段。第二种解决方案只是直接将选项卡洒在其中,所有内容都像以前一样连接起来。使用
awk -v OFS='\t' '{ print $1, $2, $3 }'
或
awk中的变量在没有运算符的情况下一个接一个地写入,在这方面,awk中的变量是串联的-$1$2$3
与$1$2$3
没有什么不同
第一种解决方案将输出字段分隔符
OFS
设置为选项卡,然后使用逗号运算符打印分隔字段。第二种解决方案只是直接将标签插入其中,所有内容都像以前一样连接起来。作为旁白:虽然{'print$1$2$3'}
在语法上碰巧起作用,但最好将整个Awk脚本放在单引号中:{print$1$2$3}
作为旁白:而{'print$1$2$3'}
从语法上说,如果能正常工作,最好将整个Awk脚本放在单引号中:“{print$1$2$3}”
。
awk '{ print $1 "\t" $2 "\t" $3 }'