Суммирование нескольких файлов в Unix - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь суммировать несколько файлов параллельно. Поскольку я отображаю переменную, она содержит нуль

a=`cat file1| sort | uniq | wc -l` & # file1 have 200k records

b=`cat file2|sort | uniq | wc -l` & # file1 have 240k records

sh -x process1.sh &

wait

echo a=$a

echo b=$b

выход

a=

b=

Ожидаемый результат

a=200000

b=240000

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте:

a=`cat file1| sort | uniq | wc -l &` 

вместо:

a=`cat file1| sort | uniq | wc -l` & 

Также есть несколько мелких проблем:

  1. бесполезный кот.

  2. с использованием обратных кавычек вместо $ (...)

  3. без двойных кавычек вокруг переменной

Рефакторированная рабочая версия:

#!/bin/bash 

a=$(sort file1 | uniq | wc -l &)
b=$(sort file2 | uniq | wc -l &)
wait
echo a="$a"
echo b="$b"
...