Попробуйте
tr '[a-z]' '[f-za-e]'
Объяснение из обратного вопроса в Как работает tr '[a -z]' '[n -za -m]'?
Использование способа , рекомендованного в руководстве по GNU awk , для разбора файлов:
awk -F '.' 'pass == 1 {seen[$0]}
pass == 2 && !($1 in seen)' pass=1 words.txt pass=2 file
При первом проходе мы сохраняем каждую строку($0
)из words.txt
как ключ ассоциативного массива seen
.
При втором проходе мы печатаем только строки из file
, где первое поле($1
)не существует, в seen
.
-F '.'
устанавливает разделитель полей(FS
)на буквальную точку.
Выход:
816.42743 9246.4688
832.41711 8867.3076
859.42639 5776.8726
870.53418 5992.9668
875.41742 6930.3584
877.43384 35639.199
885.51709 60137.957
891.41595 5480.983
Вы можете использовать grep, но вам нужен другой инструмент для обеспечения соблюдения требования «до точки»
grep -v -w -f <(sed 's/^/^/' words.txt) file2
-f
-w
-v