2014-09-04 4 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 = $ (имя хоста) LastChecked = $ (дата)» в начале, но как мне получить awk для печати этой информации? Я видел некоторые форумы и люди говорят, что вы можете сделать что-то вроде этого:

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

Однако это дает мне ошибку, если поставить «MyHost» переменную для печати. Есть идеи?

+0

Это последнее заявление приведет к ошибке только на старый сломанный awk. Если вы находитесь в Solaris, используйте nawk или/usr/xpg4/bin/awk. Если это не проблема, опубликуйте сообщение об ошибке. –

ответ

3

Ваш эхо-сигнал выдает символ новой строки после него. Используйте -n для подавления новой строки.

echo -n *Checking Partition Permission* Hostname=$(hostname) LastChecked=$(date) 
Смежные вопросы