Я никогда не использовал Chromebook, но насколько я понимаю, что они используют своего рода минимальную локальную установку и выбирают большинство данных через сеть.
Следовательно у Вас должен быть весь вид загрузочной конфигурации на локальном жестком диске и большинстве пользовательских данных где-нибудь в "облаке".
Если Вы действительно хотите избавиться от всего "таинственного волшебства", и просто установить простую человечность можно "уничтожить" жесткий диск с чем-то как dd if=/dev/zero of=/dev/sda
, который полностью вытрет данный диск путем заполнения его нулями.
Но я не уверен, действительно ли это - хорошая идея использовать Chromebook без "таинственного волшебства".
Использование 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
Вот скрипт, который, как мне кажется, выполняет эту задачу:
#! /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
.