Как изменить значения одного столбца, используя значения другого столбца из другого файла

Вы должны завершить каждый оператор if с помощью fi в sh. Примерно так:

#!/bin/sh

BANANA=1

if [ $BANANA -eq 1 ]; then 
   echo "Banana was 1"
else
    echo "Oops"
fi
echo "This line will always be run"

То есть вам нужен один fi для каждого if в вашей программе, а расположение fi определяет, где находится код, только иногда исполняются концы.

1
04.06.2018, 17:59
2 ответа

El awkes una buena herramienta para este trabajo:

awk 'NR==FNR{a[$1]=$2;next}a[$1]{print $2,a[$1]}' file1 file2

Cuando se lee el primer archivo (FN==FNR), complete la matriz acon valores de la segunda columna e indexe desde la primera columna. Luego, cuando se procese el segundo archivo, imprima su segunda columna y la segunda columna del archivo1.

Salida:

aligator 23
panda 52
bear 36
shark 25
1
27.01.2020, 23:18

Si los archivos están ordenados, puede usar joinde coreutils:

join -o '2.2 1.2' file1 file2

Salida:

aligator 23
panda 52
bear 36
shark 25
3
27.01.2020, 23:18

Теги

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