awk不打印分隔符

时间:2013-01-19 19:06:31

标签: linux bash awk

我正在运行这个awk程序:

awk -F: '{if($1=="waheed") {$2=1;print $0}}' /etc/passwd

,输出为:

mysql 1 118 129 MySQL Server,,, /nonexistent /bin/false

没有:分隔符,如何在这种情况下使用分隔符打印行? 注意:这是在编写表达式$2=1后发生的。

2 个答案:

答案 0 :(得分:1)

在awk输出中,默认情况下OFS(输出字段分隔符)变量的内容由空格分隔。这可以使用-v OFS =':'

设置
awk -F : -v OFS=':' '{ cmds}' file

答案 1 :(得分:1)

你可以直接使用这样的awk命令:

awk 'BEGIN{OFS=":"} {your code here}'

开始引号中的所有代码只运行一次

和-v选项用于将参数转换为脚本。像:

awk '{print $pid_doc}' -v pid_doc="$Param"

这个$ Param可以从你的shell脚本

中获得