파일의 두 열 값을 모두 결합합니다.

파일의 두 열 값을 모두 결합합니다.

여러 열이 있는 파일(단 하나의 행)이 있습니다(예: 4(이 예에서는)).

A B C D

한 번에 가져온 2개의 열 값의 가능한 모든 조합을 출력으로 원합니다. 예를 들면 다음과 같습니다.

AB 
AC
AD
BC
BD
CD

여기서 AB와 는 BA동일합니다. 코드를 시도했지만 sed 's! \([^ ]\+\)\( \|$\)!\1 !g' <file_name>출력은 AB CD.

awk쉘 명령을 사용하여 이를 수행하는 방법을 제안하십시오 .

답변1

그리고 awk:

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

다음은 두 개의 중첩 for루프입니다.

  • for(i=1;i<=NF;i++)모든 필드를 반복합니다.
    • for(j=i+1;j<=NF;j++)그런 다음 각 필드에 대해 나머지 모든 필드를 처음부터 반복합니다 i+1.
    • print $i$j두 개의 필드 값을 인쇄합니다.

산출:

AB
AC
AD
BC
BD
CD

관련 정보