我正在运行这个awk程序:
awk -F: '{if($1=="waheed") {$2=1;print $0}}' /etc/passwd
,输出为:
mysql 1 118 129 MySQL Server,,, /nonexistent /bin/false
没有:
分隔符,如何在这种情况下使用分隔符打印行?
注意:这是在编写表达式$2=1
后发生的。
答案 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脚本
中获得