Linux Awk – 如何控制输出分隔符

我正在运行以下awk命令将第1和第15列从input文件投影到输出。 输出文件用空格分隔符写入时,问题就开始了

awk -F "|" '{print $1,$15}' 1st_rm_text_from_transactions_22_7_14.plt > manual_memos_text_from_transactions_22_7_14.plt 

如何控制输出文件中的精度(我需要|)?

谢谢

在打印语句中使用FS而不是逗号。

 awk -F"|" '{print $1FS$15}' infile > outfile 
 awk -F "|" -v OFS="|" '...code..' 

要么

 awk 'BEGIN{FS=OFS="|"}{code...}' 

你用输出分隔符变量OFS来控制它

 awk -F "|" '{OFS="|"; print $1,$15}' 1st_rm_text_from_transactions_22_7_14.plt > manual_memos_text_from_transactions_22_7_14.plt 

更好的方法是添加一个开始部分,以避免在每行中设置变量(如其他答案和注释中所建议的):

 awk -F "|" 'BEGIN {OFS="|"} {print $1,$15}' 1st_rm_text_from_transactions_22_7_14.plt > manual_memos_text_from_transactions_22_7_14.plt 

看到这里