Объединение двух значений столбца в файл

У меня есть файл с (только с одной строкой) с несколькими столбцами, скажем, 4 (в данном случае):

ABCD 

И я хочу, чтобы результат был как всевозможная комбинация значений столбцов, принимающих 2 за раз, например:

 AB AC AD BC BD CD 

где AB и BA эквивалентны. Я пробовал код: sed 's! \([^ ]\+\)\( \|$\)!\1 !g' <file_name> sed 's! \([^ ]\+\)\( \|$\)!\1 !g' <file_name> но он дает результат как AB CD .

Пожалуйста, предложите, как это сделать, используя awk или любую команду оболочки.

С awk :

 awk '{for(i=1;i<=NF;i++){for(j=i+1;j<=NF;j++){print $i$j;}}}' file 

Это два вложенных цикла:

  • for(i=1;i<=NF;i++) цикл через все поля
    • for(j=i+1;j<=NF;j++) то для каждого поля цикл через все остальные поля (начинаться с i+1 )
    • print $i$j печатает оба значения поля.

Выход:

 AB AC AD BC BD CD