Искать в списке имен и их значений из файла в другой файл?

Похоже, вы хотите: 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
0
02.03.2018, 16:10
1 ответ

Поместите это в 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
0
28.01.2020, 04:30

Теги

Похожие вопросы