ファイルの両方の列値を結合します。

ファイルの両方の列値を結合します。

複数の列を持つファイル(単一行)があります(例: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

以下は2つのネストされたforループです。

  • for(i=1;i<=NF;i++)すべてのフィールドを繰り返します。
    • for(j=i+1;j<=NF;j++)次に、各フィールドに対して残りのすべてのフィールドを最初から繰り返しますi+1
    • print $i$j2つのフィールド値を印刷します。

出力:

AB
AC
AD
BC
BD
CD

関連情報