繁体   English   中英

用列分隔符在awk中写入文件

[英]awk write in file with column separator

我正在读取文件,并将前两列写入输出文件。 我想写“,”作为列分隔符

我尝试过

awk -F"," -OFS"|" '{print $1 , $2}' filename

输出文件没有| 分隔器

感谢Pratik

是的,由于您书写不正确,它不会打印。 以下是在任何awk程序中提及OFS的2种方法。

第一种方式:使用-v OFS="|" 提到它作为一个变量。

awk -F"," -v OFS="|" '{print $1,$2}' filename

第二种方式:使用awk BEGIN部分提及它(也建议使用)。

awk 'BEGIN{FS=",";OFS="|"}{print $1,$2}' filename

第三种:根据ghoti的评论,这里增加了1种OFS分配值的方法。 通过执行此操作,我们也可以在提及Input_file名称之前对其进行分配,因为我们可以为不同的Input_file设置不同的OFS值(因为awk可以读取多个Input_file,因此可以在这种情况下提供帮助)。 例如->

awk '{print $1,$2}' FS="," OFS="|" Input_file1  FS=":" OFS=";" Input_file2

在用于Input_file1上述命令FS,OFS| 对于Input_file2, FS:OFS; 感谢ghoti先生在评论中提到了这一点:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM