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

这里的计划是使用 将主机名的输出捕获到 var (hstnm) 中getline,然后使用该变量根据需要打印值。我有一半希望将 asub(/\n$/, "", hstnm)作为 BEGIN 语句的一部分,但正如您所见,这不是必需的。

IHTH。

于 2012-07-31T18:05:28.273 回答