Geralmente, filtrar strings é melhor feito por expressões regulares. No entanto, para o seu exemplo específico, você pode converter cada cut
em uma das duas simples awk
equivalentes como se segue. Qualquer um destes:
awk '{FS=":";$0=$0; FS=" ";$0=$6; FS="#";$0=$3; print $1}' $file
awk '{split($0,a,":"); split(a[6],b,/ +/); split(b[3],c,"#"); print c[1]}' $file
A primeira técnica converte "cut -dx -fy" em "FS = x; defina $ 0 como entrada; o resultado é $ y". FS é o separador de campo.
O segundo converte em "split (entrada, saída, x), resultado é saída [y]".
Não tenho certeza de como o corte manipula espaços como um delimitador, então usei uma expressão regular / +/
que corresponde a muitos espaços como um. Use " "
if para dividir em um único espaço.