Se você tem apenas dois campos:
awk -F- '{print $2"-"$1}' file
- Imprime apenas o segundo campo, seguido por um traço, seguido pelo primeiro campo.
Ou com o bash:
while IFS="-" read -r a b; do echo "$b-$a"; done <file
-
IFS
define o valor do separador de campo interno de bashs. -
read
lê a linha de entrada por linha e salva o primeiro campo no vairable$a
e o segundo campo em$b
. -
echo
, em seguida, imprime os dois com um traço. -
<file
fornece o conteúdo defile
como entrada.
Se o número de campos não for sempre o mesmo:
awk -F- 'OFS="-"{c=1;for(i=NF;i>=1;i--){a[c]=$i;c++}for(i=1;i<=NF;i++){$i=a[i]}}1' file