Я видаляю слова із зупинки з тексту, приблизно використовуючи цей код
У мене є таке
$ cat file
file
types
extensions
$ cat stopwords
i
file
types
grep -vwFf stopwords file
Я очікую результату:
extensions
але я отримую (я вважаю неправильним)
file
extensions
Це так, ніби слово file
було пропущено у файл зупинок. Тепер ось прохолодно трохи: якщо я змінити файл ігнорованих слів, шляхом зміни одного слова / букви i
на першій лінії, в будь-який інший ASCii літери , крім f
, i
, l
, e
, то та ж команда Grep дає мені інший і правильний результат extensions
.
Що тут відбувається і як це виправити?
Я використовую grep (BSD grep) 2.5.1-FreeBSD на базі Mac OSX GNU, версія 4.4.12 (1)
i
шаблон другим, а не першим, він stopwords
також змінює поведінку.
grep
ні з нативної, ні з GNU grep
3.1.
-x
перемикач для регулярного вираження ліній замість-w
слова? Однак я думаю, що-F
перемикач скасує будь-який з них, або навпаки.