Почему бы не перейти в репозиторий Fedora git ? Например, ссылка на файл Firefox SPEC:
https://src.fedoraproject.org/cgit/rpms/firefox.git/plain/firefox.spec
awk -F '[|;]' '$3 == "french"' file >newfile
Это использует как |
, так и ;
в качестве разделителей полей и выполняет сравнение строк между третьим таким полем и строкой french
. Если строка совпадает, выводится строка. Любой вывод перенаправляется в файл newfile
.
Если использовать только|
в качестве разделителя, вам придется проверить с регулярным выражением в начале третьего поля:
awk -F '|' '$3 ~ /^french;/' file >newfile
Это обнаруживает строку french;
в начале третьего поля и выводит строку, если она совпадает.
Если french
может встречаться в любом месте третьего|
-поля с разделителями (, например. как dutch;french
), то вы можете немного ослабить этот шаблон при использовании
awk -F '|' '$3 ~ /french/' file >newfile
grep
было бы немного неудобно использовать здесь, так как более сложно точно указать, какое поле с разделителями|
-должно соответствовать в:
grep '^\([[:alpha:]]\{1,\}|\)\{2\}french;' file >newfile
Это соответствует строке алфавитных символов (букв ), за которыми следует символ |
дважды, а затем строка french;
.
С расширенным регулярным выражением:
grep -E '^([[:alpha:]]+\|){2}french;' file >newfile
Обратите внимание, что |
теперь нужно экранировать, чтобы оно не интерпретировалось как чередование.
Опять же, если french
может встречаться в любом месте третьего поля, вам нужно будет немного смягчить выражение:
grep '^\([[:alpha:]]\{1,\}|\)\{2\}[^|]*french' file >newfile
или,
grep -E '^([[:alpha:]]+\|){2}[^|]*french' file >newfile
Я вставил [^|]*
, который соответствует любой части не-|
символов перед словом french
(, например, строку dutch;
), и я удалил ;
в конце слово (или вы могли бы заменить ;
на[;|]
).