2014-09-04 90 views
0

我现在有一个脚本,将查询partition.dumodule的所有权,并将其打印出信息:用awk打印

echo *Checking Partition Permission* Hostname=$(hostname) LastChecked=$(date) 
ls -l /applications/utilities/Disk\ Utility.app/contents/Plugins | grep Partition.dumodule | awk -v a=Username= -v b=DateModified= '{print a $3, b $6, $7, $8}' 

它会打印出这样的:

*Checking Partition Permission* Hostname=<name> LastChecked=<date> 
Username=<account> DateModified=<date> 

请注意“用户名= DateModified =”是如何分开的,这是个问题。我需要它全部出现在同一行,但我无法弄清楚如何做到这一点。我相信需要做的是awk打印出所有内容,而不是在开始时运行“Hostname = $(hostname)LastChecked = $(date)”,但是如何让awk打印出这些信息? 我已经看到了一些论坛和人说你可以做这样的事情:

awk -v MYHOST=$(hostname) '{print MYHOST " " $4}' 

但是这给了我,如果你把“MYHOST”变量错误打印。有任何想法吗?

+0

最后一条语句只会在旧的awk中产生错误。如果您在Solaris上,请使用nawk或/ usr/xpg4/bin/awk。如果这不是问题,请发布错误消息。 – 2014-09-04 20:25:34

回答

3

你的echo语句在它后面发出一个换行符。使用-n来抑制换行符。

echo -n *Checking Partition Permission* Hostname=$(hostname) LastChecked=$(date)