awkрешение:
awk 'BEGIN{ FS=OFS="\t" }
NR==FNR{ if(NF && !($0 in b)) { a[++c]=$0; b[$0] } next }{ b[$1]+=$2 }
END{ len=length(a); for(i=1;i<=len;i++) if(a[i] in b) print a[i],b[a[i]] }' patterns data
BEGIN{ FS=OFS="\t" }
-установка разделителя полей
a[++c]=$0; b[$0]
-сбор уникальных имен журналов из patterns
файла
b[$1]+=$2
-суммирование номеров для каждого имени журнала в файле data
if(a[i] in b) print a[i],b[a[i]]
-добавить значение суммы к каждому имени журнала в файле pattern
Выход:
10th ECOMF,PAB 1
10th ICOCPS (CPV-'10) 29
10th ICOMAMOS (M2S-X) 3
JOP 75
AIP 34
HIT 42
...
Вам также необходимо экспортировать переменные. Если переменная не экспортирована, новые дочерние процессы не смогут ее увидеть.
Просто добавьте export
перед объявлением переменной, например, export LS_COLORS="di=0;35"
.
Однако все переменные будут стираться после каждого сеанса, и их нужно будет устанавливать заново в начале каждого нового сеанса. Чтобы сделать это автоматически (, предполагая, что вы используете bash ), просто добавьте строку в файл ~/.bashrc
, так как этот файл запускается каждый раз, когда запускается новый сеанс bash.
Вы можете распечатать значения по умолчанию с помощью команды dircolor -p
, изменить текущий цвет для каталогов(DIR 01;34
= синий )с sed
и используйте этот вывод в качестве ввода для команды dircolors
.
Печатает измененное значение для переменной LS_COLORS
и команды export LS_COLORS
:
dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/')
Если вы используете bash
, вы можете добавить этот вывод к вашему ~/.bashrc
и получить модифицированный~/.bashrc
:
dircolors <(dircolors -p | sed 's/DIR 01;34/DIR 01;35/') >> ~/.bashrc
. ~/.bashrc