Вам не разрешено изменять права доступа к файлу, если вы не являетесь его владельцем или пользователем root.
Когда вы используете sudo cat secret.txt
и sudo
запрашивает пароль, обычно запрашивает ()ваш пароль.
Если вы укажете правильный пароль (ваш )и если sudo
был настроен так, чтобы вы могли его использовать, то эта команда отобразит содержимое файла secret.txt
. Если вам не разрешено использовать sudo
и если вы не знаете пароль root, вы не сможете прочитать файл обычными средствами.
Использованиеgawk
:
$ awk 'NR==FNR{ar[$9]=$12;next}
($1 in ar) {$2= ar[$1]}1' file1 file2
В этой команде NR==FNR{ar[NR]=$12;next}
означает, что это правило будет применяться к первому файлу только , поскольку FNR
будет установлено на ноль после файла1. В этом правиле создается массив ar
с содержимым поля 12, проиндексированным по полю 9($9
)первого файла file1
. next
предотвращает дальнейшее действие на file1
.
Выражение if ($1 in ar) $2=ar[$1]
означает, что если первое поле($1
)в найденных в индексах из ar
, то второе поле file2
заменяется на ar
. Это связано с тем, что ar
проиндексирован на $9 первого файла file1
. Поскольку $2
из file2
теперь изменено, 1
будет печатать новое $0
.
А 1
— это идиома awk
для печати.
Поскольку ваши файлы отсортированы, это можно сделать командой join
:
join file1 file2 -1 9 -2 1 -o 2.1,1.12,2.3,2.4,2.5
Пояснение:
-1
опция )и столбец #1 файла 2(-2
опция)-o
)производится из полей 2.1 (1-й столбец файла 2 ), 1.12 (12-й столбец файла 1 )и т. д.