Если у них есть одна учетная запись, этого должно быть достаточно, но если у каждого из ваших родителей есть собственный логин , вы можете проверить, что группы настроены одинаково, особенно если они совместно используют файлы и используют разрешения группы для чтения и записи в некотором общем каталоге. Вы можете добавить группу с помощью groupadd
и использовать usermod
, чтобы добавить такую группу к учетным записям, созданным useradd
(если вы сначала выполните groupadd
вы также можете указать группу в качестве опции для useradd
)
$ cat fileA fileB | sort -k3,3 -k4,4nr | sort -k3,3 -u
a b c 10
d e f 15
g h i 15
j k l 20
p l m 35
w x z 40
Это конвейер из трех частей:
файлA
с файлB
. Сортировка объединенного файла в порядке убывания номеров на основе четвертого столбца для каждого уникального значения в третьем столбце. Результатом этого шага будет
abc 10
def 15
def 11
ghi 15
jkl 20
jkl 15 {{1} } plm 35
wxz 40
Отсортируйте это снова, но удалите дубликаты и используйте только третий столбец в качестве ключа сортировки. Так как это оставит строку с первым найденным экземпляром ключа сортировки, но отбросит строки с дублированными ключами сортировки (и с меньшими значениями в четвертом столбце, благодаря сортировке first ), это даст нам желаемый результат.
Этот подход полностью игнорирует содержимое первых двух столбцов.
Если ваш интерпретатор awk находится в / usr / bin /:
cat doit.awk
#!/usr/bin/awk
NF!=4 {
print "Field number must be 4" > "/dev/stderr";
exit 1;
}
FILENAME=="file_a" {
i++;
numval_a[i]=$4;
letters_a[i]=$1FS$2FS$3;
}
FILENAME=="file_b" {
k++;
numval_b[k]=$4;
letters_b[k]=$1FS$2FS$3;
}
END {
for(j=1; j<=i; j++) {
if(letters_a[j]!=letters_b[j]) {
print "Line missmatch!" > "/dev/stderr";
exit 2;
}
if(numval_a[j]>numval_b[j])
max=numval_a[j];
else
max=numval_b[j];
print letters_a[j], max;
}
}
awk -f doit.awk file_a file_b
a b c 10
d e f 15
g h i 20
j k l 25
Примерно так:
awk '$4>n[$3]{n[$3]=$4;l[$3]=$0}END{for(i in l)print l[i]}' file_a file_b > file_c
Объяснение: если 4-й столбец больше запомненного максимума для того же 3-го столбца (в массиве n
), то запомните новый 4-й столбец и всю строку (в ] l
массив) для этого 3-го столбца. В конце выведите все запомненные строки.