использование awk в конструкции xargs: получение другого вывода при попытке вставить awk внутри xargs - -
step1
~/waste/dgx-users2.log | head -n2
node1
node2
step2
cat ~/waste/dgx-users2.log | head -n2 | xargs -l1 -- sh -c 'echo $1 && kubectl get pods --field-selector=spec.nodeName=$1,status.phase=Running --all-namespaces --no-headers' --
node1
node2
test-s test-s-pod 3/3 Running 0 6d1h
dummy-s test-s-pod 1/1 Running 0 5d9h
, но Я хочу, чтобы в списке были указаны только тестовые значения в $ 1, поэтому фильтр ниже
cat ~/waste/dgx-users2.log | head -n2 | xargs -l1 -- sh -c 'echo $1 && kubectl get pods --field-selector=spec.nodeName=$1,status.phase=Running --all-namespaces --no-headers' -- | awk '$1 ~ /test-*/ && /Running/ {print}'
test-s test-pod 3/3 Running 0 6d
Выше все хорошо, но есть ли способ, которым я могу получить awk внутри xargs -? Я попробовал ниже, но в нем отсутствует последняя строка вывода, которая отображается в моем ожидаемом выводе.
cat ~/waste/dgx-users2.log | head -n2 | xargs -l1 -- sh -c 'echo $1 && kubectl get pods --field-selector=spec.nodeName=$1,status.phase=Running --all-namespaces --no-headers | awk "$1 ~ /test-*/ && /Running/ {print}"' --
node1
node2
Не получается тот же вывод .. поэтому мне нужно настроить некоторый синтаксис, я думаю ... мой ожидаемый вывод должен быть .
Моя цель - напечатать информацию об этом узле вместе с выводом, чтобы я знал, на каком узле работает этот модуль, как показано ниже: узел1 не имеет ничего, а узел2 имеет его.
node1
node2
test-s test-pod 3/3 Running 0 6d