行ファイルの値を列ファイルの対応する値に移動して2つのファイルをマージするにはどうすればよいですか?

行ファイルの値を列ファイルの対応する値に移動して2つのファイルをマージするにはどうすればよいですか?

2つのファイルがあります。最初のファイルには行があり、2番目のファイルには列があります。行ファイルの各値を列ファイルの同じ値に移動し、空のセルの前にある各値を置き換えて2つのファイルをマージしたいと思います。 x値とy値があります。要するに、私はその入力ファイルが欲しい

row file
6  8  2  3  7  6  ...     

column file
1
2
3 
4  
5   
6
7
8  
.
.

結合後の結果は次のようになります

output file
1   x  x  x  x  x  x  ....     
2   x  x  2  x  x  x  
3   x  x  y  3  x  x   
4   x  x  y  y  x  x  
5   x  x  y  y  x  x  
6   6  x  y  y  x  6  
7   y  x  y  y  7  y   
8   y  8  y  y  y  y  
9   y  y  y  y  y  y   
....   
.... 

ベストアンサー1

あるファイルをメモリにロードし、メモリの値に基づいて別のファイルを処理します。

だまさないで、まず自分で試してみてください。少し試しても機能しない場合は、コードについてお問い合わせください。自分で試さないと何も学べません。

ここで…始めましょう。 Bashで配列を作成する方法は次のとおりです。

# with while read
array=()
while read line; do 
    array+=("$line")
done < somefile

# the other way... sometimes necessary
IFS=$'\n\t ' # example IFS... in this case I am setting the normal default. For data that includes spaces, you exclude space here. If your data contains all 3, you have to use while read.
array=()
for line in $(cat somefile); do 
    array+=("$line")
done

# and here's looping over it
for n in "${array[@]}"; do
    echo "$n"
done

複数行の「スポイラー」の構文を理解することはできません...したがって、ここに答えを印刷する1行のスクリプトがあります(bashから)。

base64 -d <<<"=="

おすすめ記事