Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 gawk 将系统主机名添加到字符串中。我不在,我可以做这样的事情:
interesting_command.sh|gawk 'print system("hostname") "\t" $0'
但这最终会打印:
hostname.example.com Line 1 text hostname.example.com Line 2 text
等等
理想情况下,我正在寻找hostname任何换行符或空白字符的输出。
hostname
我怎样才能做到这一点?
这个怎么样
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 语句的一部分,但正如您所见,这不是必需的。
getline
sub(/\n$/, "", hstnm)
IHTH。