awk 필드에서 basename 명령을 실행하고 싶습니다.
echo "1 /this/is/a/path" | awk '{print $1" "system("/usr/bin/basename " $2)}'
그러나 시스템 명령의 출력은 항상 0을 생성합니다. 실제 출력물을 어떻게 인쇄하나요?
답변1
POSIX적으로:
$ echo "1 /this/is/a/path" | awk '
{
cmd = "/usr/bin/basename -- " $2;
cmd | getline out;
print $1, out;
close(cmd);
}'
1 path