Как получить доступ к sudo после Powerwashing (сброса заводских настроек) моего компьютера?

AWK

В awk этого довольно легко добиться:

$ awk 'NR==FNR{a[$2]=$1; next}{print $1,a[$1]}' file1.txt file2.txt    
3AG33662AAAC
3KC12828ACBA 14
8DG59242BAAD 43
8DG60349AAAC
8DG60565AAAG
8DG60566AAAF 25
8DG60568AAAC
8DG60912AAAF 6
8DG62635AAAC

Ничего особенного не происходит - этот метод часто используется теми, кто часто использует awk , особенно при обработке нескольких файлов, и он основан на идее загрузки информации из первого файла в массив.

Это работает просто. Сначала, используя NR == FNR (сравнение между текущим номером обрабатываемой строки и номером строки в текущем файле), мы читаем все из file1.txt (в примере OP это s2.txt ) в ассоциативный массив значений. Ключевое слово next позволяет нам пропустить следующий кодовый блок, пока мы все еще находимся в первом файле. Как только мы выйдем из первого файла, будет выполнен следующий кодовый блок, всегда печатающее поле 1 и соответствующий элемент в массиве, если он существует.

Perl

Используя ту же идею, что и awk, мы можем добиться аналогичного результата в Perl, например:

perl -lane 'if($F[1]){$hash{$F[1]}=$F[0]}else{print "$_ $hash{$_}"}' file1.txt file2.txt
2
03.10.2015, 14:23
0 ответов

Теги

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