Сравните 2 файла с разделением табуляцией и произведите различия с заголовком столбца

Я никогда не использовал Chromebook, но насколько я понимаю, что они используют своего рода минимальную локальную установку и выбирают большинство данных через сеть.

Следовательно у Вас должен быть весь вид загрузочной конфигурации на локальном жестком диске и большинстве пользовательских данных где-нибудь в "облаке".

Если Вы действительно хотите избавиться от всего "таинственного волшебства", и просто установить простую человечность можно "уничтожить" жесткий диск с чем-то как dd if=/dev/zero of=/dev/sda, который полностью вытрет данный диск путем заполнения его нулями.

Но я не уверен, действительно ли это - хорошая идея использовать Chromebook без "таинственного волшебства".

4
04.09.2014, 22:24
2 ответа

Использование awk :

awk '
NR==1 { 
  for (i=1; i<=NF; i++)
    header[i] = $i
}
NR==FNR {
  for (i=1; i<=NF; i++) {
    A[i,NR] = $i
  }
  next
}
{
  for (i=1; i<=NF; i++)
    if (A[i,FNR] != $i)
      print "ID#-" $1 ": " header[i] "- " ARGV[1] " value= ", A[i,FNR]" / " ARGV[2] " value= "$i
}' file1.txt file2.txt

Вывод:

ID#-ee: Time- file1.txt value=  gg / file2.txt value= 2g
ID#-ii: Building- file1.txt value=  ll / file2.txt value= 2l
2
27.01.2020, 20:56

Вот скрипт, который, как мне кажется, выполняет эту задачу:

#! /bin/bash

FILE1=$1
FILE2=$2

[[ -z $FILE1 || -z $FILE2 ]] && echo "USAGE: $0 FILE1 FILE2" && exit 1

join -j 1 $FILE1 $FILE2 | 
awk '
NR == 1 { for (i = 1; i <= NF; i++) { header[i] = $i; }; NCOLS = (NF - 1)/2; } 
NR > 1 { for (i = 2; i <= NCOLS + 1; i++) { if ($i != $(i+NCOLS)) {print header[1]"#-"$1": "header[i]"- '$FILE1' value=",$i" / '$FILE2' value= "$(i+NCOLS) } } }
'

я применил join к файлам, чтобы я мог прочитать их за один раз.

С NR == 1 я читаю в первой строке к массиву (так что я могу использовать их позже.

Так как я использовал join, если в обоих файлах были n столбцы, то комбинированный вывод имеет 2n-1 столбцы (столбцы, используемые для объединения, объединяются). Поэтому я сохраняю количество колонок (со скидкой на общий столбец) в NCOLS.

2
27.01.2020, 20:56

Теги

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