Это должно быть легко для вас
Вот файл1 (один столбец)
1 2 3 4 5 6 7 8 9
а вот файл2 (две колонки)
2 yay 3 ups 4 wow 8 hey
Должен быть простой однострочный файл для распечатки строк в файле1, которые не соответствуют файлу2
awk 'NR==FNR{a[$1]++;next;}!($0 in a)' file2 file1
или используя соединение с -v, как предложил @Michael:
join -v1 file1 file2
оба напечатают:
1 5 6 7 9
Вы можете сделать это, комбинируя cut и comm:
cut
comm
cut -d' ' -f1 file2 | comm -13 - file1
Вы также можете рассмотреть join, в зависимости от того, как вы хотите обрабатывать повторяющиеся строки.
join
Это решение Sed может работать для вас:
{ seq 1 10; echo -e "2 yay\n3 ups\n4 wow\n8 hey"; } | sort -n | sed '1{h;d};H;${x;s/\(\S\+\)\n\1[^\n]*\n//g;p};d' 1 5 6 7 9 10
Объяснение: Сортировать файлы по номерам, а затем с помощью sed перетащить файл в пространство удержания (HS).В конце файла своп к HS и затем удалите строки с дублирующимися ключами.
sed