0

我正在运行这个 awk 程序:

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

输出是:

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

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

4

2 回答 2

1

您可以像这样直接使用 awk 命令:

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

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

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

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

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

于 2013-01-20T03:41:26.060 回答
1

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

awk -F : -v OFS=':' '{ cmds}' file
于 2013-01-19T19:12:12.350 回答