Похоже, вы хотите: i) добавить содержимое файла file1 в file2 и ii) изменить формат файла file2, чтобы он соответствовал формату файла one. На самом деле ваш вопрос не об этом, а о том, что вы показываете в своем выводе. Если я неправильно понял, пожалуйста, отредактируйте свой вопрос и уточните.
Чтобы сделать это, вы можете просто сделать:
awk 'NR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file2 >> file1
Это сделает file1
выходным файлом. Если вы хотите сохранить file1
, вы можете сделать:
( cat file1; awk 'NR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file2 ) > out
Или вы можете сделать все это в awk
(это просто упрощенная версия решения Archemar):
awk 'NR==FNR{print; next} FNR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file1 file2 > out
Поместите это в script.sh и запустите ./script.sh в первую секунду
#!/bin/bash
TOFIND=($(cat "$1" | tail -n +2))
COLUMNS=()
for ((I=0; I<3; ++I))
do
COLUMNS+=("$(cat "$2" | tail -n +3 | awk -F' ' '{print $'$((2*$I+1))',$'$((2*$I+2))'}')")
done
RESULT=()
echo -e "\tNP\tNT\tCT"
for ELEM in "${TOFIND[@]}"
do
echo -ne "$ELEM"
for COLUMN in "${COLUMNS[@]}"
do
VAL="$(echo "$COLUMN" | grep "$ELEM")"
if test -z "$VAL"
then
VAL=0
else
VAL="$(echo "$VAL" | awk -F' ' '{print $2}')"
fi
echo -ne "\t$VAL"
done
echo ""
done