0

gawkを使用して、システムのホスト名を文字列の前に追加しようとしています。私は離れています私はこのようなことをすることができます:

interesting_command.sh|gawk 'print system("hostname") "\t" $0'

しかし、それは最終的に印刷されます:

hostname.example.com
    Line 1 text
hostname.example.com
    Line 2 text

hostname理想的には、改行または空白文字が削除された出力を探しています。

これどうやってするの?

4

1 に答える 1

2

これはどう

echo "1
2
3" |awk 'BEGIN{"hostname" | getline hstnm ; }; {print hstnm "\t" $0}'
myhost       1
myhost       2
myhost       3

ここでの計画は、 を使用して hostname の出力を var (hstnm) にキャプチャしgetline、変数を使用して必要に応じて値を出力することです。sub(/\n$/, "", hstnm)BEGIN ステートメントの一部として a を含めることを半分期待していましたが、ご覧のとおり、必須ではありません。

IHTH。

于 2012-07-31T18:05:28.273 に答える