줄이 특정 문자열로 끝나는지 확인하려면 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

효과는 매우 좋습니다 :)

관련 정보