команда comm, не сравнивающая слова - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь изучить программирование оболочки, и для этого я использую приложение Ubuntu в Windows 10, я прочитал о команде comm и, как я понял, она должна работать, как показано ниже

file1.txt    file2.txt
abc          abc
cde          efg
a            b
b            c

the result should be
a
cde
             abc
             b
      c
      efg

but what I am getting is

abc
a
cde            
              b
       efg
       abc
       c

thisВот как я использовал команду

comm file1.txt file2.txt

Я подозреваю, что это потому, что я использую ее в приложении для Windows, но другие команды, такие как grep uniq ps pwd ... все работают нормально Любая помощь будет признательна

1 Ответ

3 голосов
/ 06 ноября 2019

Windows не проблема здесь. Вы использовали comm неправильно. man comm состояния

comm - сравнивать два отсортированных файла построчно

Поэтому сначала нужно отсортировать оба файла.

Используйте

sort file1.txt > file1sorted
sort file2.txt > file2sorted
comm file1sorted file2sorted

Или, если вы используете bash (не просто sh или какую-либо другую оболочку)

comm <(sort file1.txt) <(sort file2.txt)
...