grep, чтобы увидеть, заканчивается ли строка определенной строкой

grep, чтобы увидеть, заканчивается ли строка определенной строкой

Здравствуйте, у меня есть файл, в котором много строк, заканчивающихся на main.css">, и некоторые из них повторяются.

Я хочу сохранить только одну копию этих строк и удалить повторяющиеся строки.

Могу ли я использовать grep для поиска в файле строки, заканчивающейся на main.css">?

На данный момент у меня есть:

 grep ' main.css' file.txt |sort | uniq -u

Это не делает ничего, как я ожидал, это просто дает мне пустой вывод. Пожалуйста, помогите? Это не

решение1

Вам следует использовать:

grep -n 'main\.css">$' file.txt

$обозначает конец строки, очевидно, после этого ничего следовать не может.

Здесь вам не нужно *, так как вы ищете шаблон внутри строки, все, что находится перед вами, автоматически игнорируется, если ваш шаблон найден. Единственное, что вам нужно здесь экранировать, это .который является единственным оператором регулярного выражения в main.css">. Также -rявляется избыточным, если вы предоставляете только один файл.

решение2

Вы также можете использовать awk,

$ cat file
foo main.css">
ghj
brar main.css">

$ awk '/main\.css">$/{print NR}' file
1
3

Или sed:

$ sed '/main\.css">$/=' file
1
3

решение3

Я думаю, вы также хотели сохранить и другие строки, которые не имеют значения, main.css>даже если они дублируются:

Line 1
Line 2
Line 1
Line 2 main.css">
Line 2 main.css">
Line 3 
Line 3 main.css">
Line 4

Чтобы после команды получилось:

Line 1
Line 1
Line 2
Line 2 main.csv>
Line 3 
Line 3 main.csv>
Line 4

В этом случае следующая команда должна сработать: sort your_file | awk '!/main.css">$/;/main.css">$/,/main.css">$/{if($0!=p){print;p=$0}}'

решение4

sed  '/main.css/d' file.txt  > ~/Desktop/solution.txt

Это сработало просто отлично :)

Связанный контент