во втором эхе поместите вашу переменную в одинарные кавычки -например:
su username -c "echo '${path_value}'"
Таким образом, echo интерпретирует содержимое переменной как строку, а знак "$" -экранируется.
Спасибо Эду Мортону за улучшение скрипта awk:
awk -v n=$1 '
NR==1
{a[$1]=($1 in a ? a[$1] RS : "") $0}
END{for(i in a){if(gsub(RS,"&",a[i])==n-1){print a[i]}}}
' "$2"
NR==1
печатает заголовок. Последний оператор вызывает функцию разделения только для проверки количества строк в каждом элементе массива. Если их 4, то они печатаются.
Вы вызываете его с помощью./script 4 file
(1-й аргумент — количество повторений, 2-й — имя файла )после того, как он станет исполняемым.
Этот ответ не требует, чтобы строки с одинаковым первым полем располагались рядом друг с другом во входном файле.
$ awk -v n=4 '
NR==1 { print; next }
$1 != prev { if (cnt==n) printf "%s", buf; prev=$1; cnt=0; buf="" }
{ cnt++; buf=buf $0 ORS }
END { if (cnt==n) printf "%s", buf }
' file
ID structureA structureB
sample_2 1 1
sample_2 2 1
sample_2 1 2
sample_2 2 2
sample_4 1 1
sample_4 2 1
sample_4 3 1
sample_4 4 1