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 <<<"=="