我想在某个 awk 字段上运行 basename 命令。
echo "1 /this/is/a/path" | awk '{print $1" "system("/usr/bin/basename " $2)}'
但系统命令的输出总是产生 0。如何打印真实输出?
答案1
POSIXly:
$ echo "1 /this/is/a/path" | awk '
{
cmd = "/usr/bin/basename -- " $2;
cmd | getline out;
print $1, out;
close(cmd);
}'
1 path