awkを使用して2つのファイルごとに接続する

awkを使用して2つのファイルごとに接続する

このようなファイルがいくつかあります。

BR1.txt
NH1.csv
BR2.txt
NH2.csv
BR3.txt
NH3.csv

それぞれをファイルBRにリンクしたいと思います。NH

答え1

これはおそらくあなたが望むものです:

for br in BR*.txt; do
    num="${br#BR}"
    num="${num%.*}"
    nh="NH${num}.csv"
    cat "$br" "$nh" > "out${num}.txt"
done

ただし、サンプル入力/出力がない場合、これは推測です。

答え2

set -- BR*.txt
count=0

for name in NH*.csv; do
        count=$(( count + 1 ))
        cat "$1" "$name" >"file$count"
        shift
done

まず、位置引数リストをfileに設定してからファイルをBR繰り返します。の各ファイル名NHに対して、次のファイルを連結し、その結果を名前付きファイルに記録し、その後に数字が付きます。これを使用すると、次の繰り返しの次のファイルになります。NH$nameBRfileshift$1BR

BRNHこれは、2つのファイルセットの数が同じで、同じ番号付けシステムに従うと仮定して(正しい方法でソートされるように)、各ファイルをそのファイルに効果的に関連付けます。

関連情報